![]()
筆箱に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制御入門
最近のコメント




コメントを残す