VBAtips
自動売買ツールをエクセルで作る場合に役立つ、VBAによるブラウザとマウスの制御方法を簡単にまとめた備忘録。
IE・HTML操作関連
- VBAでInternetExplorerを操作できるようにする
- →VBEのツールバー(ツール)からMicrosoft Internet Controlsの参照設定を行う。
- InternetExplorerオブジェクトの生成
Dim IE As New InternetExplorer
- ※以下、生成済みのInternetExplorerオブジェクトをIEで示す
- InternetExplorerオブジェクトを破棄する
IE.Quit
- ブラウザを表示する
IE.Visible = True
- ブラウザを非表示にする
IE.Visible = False
- ブラウザをフルスクリーン表示する
IE.FullScreen = True
- ブラウザのフルスクリーン表示を元に戻す
IE.FullScreen = False
- 指定したURLのページを読み込む
IE.Navigate2 "移動したいページのURL"
- ページの読み込み完了を待つ
While (IE.Busy = True) Or (IE.ReadyState < READYSTATE_COMPLETE) DoEvents Wend
- ページ内の要素をIDで指定
IE.document.getElementById("指定したいID")
- ページ内の要素をタグ名で指定
IE.document.getElementsByTagName("指定したいタグ")
- ページ内の要素をnameで指定
IE.document.all("指定したいname")
- ページ内のbody要素の指定
IE.document.body
- 要素のテキスト
"要素".innerText
- 要素をクリック
"要素".Click
マウスイベント操作関連
- マウスイベントを操作できるようにする
Declare PtrSafe Sub mouse_event Lib "user32" (ByVal dwFlags As Long, _ ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, _ ByVal dwExtraInfo As Long)
- カーソル位置を取得できるようにする
Declare PtrSafe Function GetCursorPos Lib "user32" _ (lpPoint As POINTAPI) As Long Type POINTAPI 'カーソル位置取得用の構造体 getx As Long gety As Long End Type
- カーソル位置を指定できるようにする
Declare PtrSafe Function SetCursorPos Lib "user32" (ByVal setx As Long, _ ByVal sety As Long) As Long
- カーソル位置の取得
Dim cursorpoint As POINTAPI GetCursorPos cursorpoint
- カーソル位置の指定
SetCursorPos 横位置, 縦位置
- カーソル位置で左クリック
mouse_event 2, 0, 0, 0, 0 mouse_event 4, 0, 0, 0, 0