VBAのIE(InternetExplorer)制御でBUFFALO(バッファロー)のルーターを自動再起動する制御方法について解説しています。
今回は、BUFFALO(バッファロー)製品のエアステーションやルータを自動で再起動する方法について解説します。
ちなみに私がPC環境で利用している無線ルーターはBUFFALO(バッファロー)製品の「WHR-G301N」です。
こちらの製品は販売終了していますが、LAN接続ソフト「クライアントマネージャ」を操作するため基本どのルーターでも対応可能かと思います。
こちら実際どういう場合に利用するかというと人それぞれですが主にルーターの自動再起動によるIPアドレスの変更などで利用されることが多いのではないでしょうか。
IPアドレスの変更であれば、コマンドプロンプトや他の方法でもできなくはないですが、こちらではVBAのIE制御入門サイトですので、VBAでどのように制御するのかを説明していきます。まずは、処理の流れを見ていきましょう。
となります。
※BUFFALO(バッファロー)製品のルーターに特化した処理ですので、他製品の処理で対応していません
こちらは、完成したマクロになりますので、ご確認ください。
Sub sample()
Call ieBasic2("192.168.1.4", "root", "")
'管理設定をクリック
Set objFrame = objIE.document.frames
For i = 0 To objFrame.Length - 1
Set objFrame2 = objFrame(i).document.frames
For i2 = 0 To objFrame2.Length - 1
Set objFrameDoc = objFrame2(i2).document
For Each objTag In objFrameDoc.getElementsByTagName("a")
If InStr(objTag.outerHTML, "管理設定") > 0 Then
objTag.Click
Call ieCheck(objIE)
GoTo label01
End If
Next
Next i2
Next i
label01:
Call frameTagClick(objIE, "a", "再起動")
Call frameTagClick(objIE, "input", "再起動")
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
それでは、1つずつ見ていきましょう。
Call ieBasic2("192.168.1.4", "root", "")
※ドラッグ(スワイプ)すると全体を確認できます。
ルーター管理画面のアクセスするとBASIC認証が表示されますので「ieBasic2サブルーチン」を利用してルーターの管理画面にログインしています。
一般的なルーターのIPアドレスは「192.168.1.1」ですが、もしルーターのアドレスが分からない場合は、BUFFALOのサポートセンターへお問い合わせください。
'管理設定をクリック
Set objFrame = objIE.document.frames
For i = 0 To objFrame.Length - 1
Set objFrame2 = objFrame(i).document.frames
For i2 = 0 To objFrame2.Length - 1
Set objFrameDoc = objFrame2(i2).document
For Each objTag In objFrameDoc.getElementsByTagName("a")
If InStr(objTag.outerHTML, "管理設定") > 0 Then
objTag.Click
Call ieCheck(objIE)
GoTo label01
End If
Next
Next i2
Next i
label01:
※ドラッグ(スワイプ)すると全体を確認できます。
ルーターの管理画面が表示されたら、再起動画面まで移動していきます。
まず、「管理設定」をクリックする必要がありますが、非常にやっかいなサイト構成になっています。
以下は管理画面のトップページソースになります。
<frameset border="0" frameborder="0" framespacing="0" scrolling="no">
<frame name="top" src="/cgi-bin/cgi?req=tfr&tag=tag_setup" scrolling="no">
</frameset>
※ドラッグ(スワイプ)すると全体を確認できます。
見て分かるようにフレームで構成されていますね。
ただし、これだけではなく、更に深いフレーム構成になっています。
1階層のフレームであれば「エクセルVBAでフレームの基本操作」のサブルーチンを利用することで簡単に処理できますが、「管理設定」をクリックするためには2階層のフレームを操作しなければなりません。
こちらの処理はその2階層の処理となります。
'管理設定をクリック
Set objFrame = objIE.document.frames
For i = 0 To objFrame.Length - 1
(省略)
Next i
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、最初のフレームの数だけループ処理をしています。
Set objFrame2 = objFrame(i).document.frames
For i2 = 0 To objFrame2.Length - 1
(省略)
Next i2
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、1階層のフレームから更にフレームを取得して、その数だけループ処理をしています。
Set objFrameDoc = objFrame2(i2).document
For Each objTag In objFrameDoc.getElementsByTagName("a")
If InStr(objTag.outerHTML, "管理設定") > 0 Then
objTag.Click
Call ieCheck(objIE)
GoTo label01
End If
Next
(省略)
label01:
※ドラッグ(スワイプ)すると全体を確認できます。
こちらは、タグクリック処理で同じみの形ですね。
aタグの数だけループ処理をし、「管理設定」が含まれているaタグをクリックしています。
処理が終わると「GoToステートメント」で処理を終了させています。
Call frameTagClick(objIE, "a", "再起動")
Call frameTagClick(objIE, "input", "再起動")
※ドラッグ(スワイプ)すると全体を確認できます。
ここまでくれば後は処理は簡単です。
処理は1階層のフレーム内での処理ですので、「frameTagClickサブルーチン」を利用して、aタグの「再起動」をクリック後、inputタグの「再起動」をクリックして再起動されます。
今回紹介した方法は、順序立てて処理を行ってきましたが、以下の方法でも自動再起動することができます。
Sub sample()
Call ieBasic2("http://192.168.1.4/cgi-bin/cgi?req=tfr&id=24", "root", "")
Call frameTagClick(objIE, "input", "再起動")
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
すごく、シンプルになりましたね。
これは、再起動画面のURLに直接アクセスしています。
これにより途中のクリック処理を省いています。
このようにサイトの特性と処理の目的から簡素化することが可能ですので、1つ1つ処理するよりは効率よく処理をすることができます。
次の記事: VBAのIE操作でルーター(PR-S300SE)を再起動 >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。
ExcelのVBA初心者入門↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。
こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。