筆箱にVBAのカンニングペーパーを入れる係のみすくです。こんにちは。
IEの操作に必要なものをどんどんここに足していく作戦なので、
定期的に更新します。
参照設定
Microsoft Shell Controls And Automation
Microsoft Internet Controls
Microsoft HTML Object Library
Option Explicit Public Enum eHWnd SW_HIDE = 0 'ウィンドウを非表示にし、他のウィンドウをアクティブにします。 SW_SHOWNORMAL = 1 'ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されていた場合は、その位置とサイズを元に戻します。初めてウィンドウを表示するときには、このフラグを指定してください。 SW_SHOWMINIMIZED = 2 'ウィンドウをアクティブにして、最小化します。 SW_MAXIMIZE = 3 'ウィンドウを最大化します。 SW_SHOWNOACTIVATE = 4 'ウィンドウを直前の位置とサイズで表示します。 SW_SHOW = 5 'ウィンドウをアクティブにして、現在の位置とサイズで表示します。 SW_MINIMIZE = 6 'ウィンドウを最小化し、Z 順位が次のトップレベルウィンドウをアクティブにします。 SW_SHOWMINNOACTIVE = 7 'ウィンドウを最小化します。SW_SHOWMINIMIZED と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。 SW_SHOWNA = 8 'ウィンドウを現在のサイズと位置で表示します。SW_SHOW と似ていますが、この値を指定した場合は、ウィンドウはアクティブ化されません。 SW_RESTORE = 9 'ウィンドウをアクティブにして表示します。 SW_SHOWDEFAULT = 10 'アプリケーションを起動したプログラムが 関数に渡した 構造体で指定された SW_ フラグに従って表示状態を設定します。 End Enum
Option Explicit '--------------------------------------- 'Win32Api '--------------------------------------- Private Declare Function IsIconic Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function ShowWindowAsync Lib "user32.dll" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long '--------------------------------------- ' 変数 '--------------------------------------- Dim objIE As New InternetExplorer Private Sub Class_Terminate() Set objIE = Nothing End Sub '--------------------------------------------------------------------------------------------------- '【処 理 名】IE起動 '【処理概要】IEを起動する '【引 数】[I]ByVal url As String URL '【返 却 値】なし '--------------------------------------------------------------------------------------------------- Public Sub openUrl(ByVal url As String) 'Internet Explorerを可視にする objIE.Visible = True objIE.Navigate url waitIE End Sub '--------------------------------------------------------------------------------------------------- '【処 理 名】起動済みIE取得 '【処理概要】起動済みのIEを取得する。複数起動されている場合は最後に取得したウィンドウとなる '【引 数】なし '【返 却 値】なし '--------------------------------------------------------------------------------------------------- Public Sub getIE() Dim objShell As Shell Dim objWin As Object Set objShell = New Shell For Each objWin In objShell.Windows If objWin.Name = "Internet Explorer" Then Set objIE = objWin End If Next End Sub '--------------------------------------------------------------------------------------------------- '【処 理 名】IE待機 '【処理概要】IEのBusyを待機する '【引 数】なし '【返 却 値】なし '--------------------------------------------------------------------------------------------------- Private Sub waitIE() Do While objIE.Busy Or objIE.ReadyState < READYSTATE_COMPLETE DoEvents Loop End Sub '--------------------------------------------------------------------------------------------------- '【処 理 名】URLオープン '【処理概要】指定したURLを開く '【引 数】[I]ByVal url As String '【返 却 値】 '--------------------------------------------------------------------------------------------------- Private Sub naviUrl(ByVal url As String) objIE.Navigate url waitIE End Sub '--------------------------------------------------------------------------------------------------- '【処 理 名】最前面に表示 '【処理概要】IEを最前面に表示する '【引 数】なし '【返 却 値】なし '--------------------------------------------------------------------------------------------------- Private Sub foreGroundIE() If IsIconic(objIE.hWnd) Then ShowWindowAsync objIE.hWnd, eHWnd.SW_RESTORE End If End Sub参考 MSDNShowWindow 参考 VBAのIE制御入門VBAのIE制御入門
最近のコメント
コメントを残す