|
▼Keinどうもありがとうございます。
>OSの処理ですから、Excelのコードでは及びません。全てAPIの処理になります。
そういうことなのですね、どうもありがとうございます
>例えばどんなウィンドウを開いていても IE を見つけて前面に出す、という
>ことなら
>
>Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, _
>lPalam As Long) As Long
>Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
>(ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
>Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
>(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
>Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) _
>As Long
>Declare Function OpenIcon Lib "user32" (ByVal hWnd As Long) As Long
>Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Long
>
>Sub MyWindow_SetFront()
> Dim Ret As Long
>
> Ret = EnumWindows(AddressOf Rekkyo, 0)
>End Sub
>
>
>Public Function Rekkyo(ByVal Handle As Long) As Boolean
> Dim Ret As Long, Leng As Long, hWnd As Long
> Dim Name As String
>
> Name = String(255, ChR(0))
> Leng = Len(Name)
> Ret = GetWindowText(Handle, Name, Leng)
> If Ret <> 0 Then
> If Name Like "*Microsoft Internet Explorer*" Then
> hWnd = FindWindow(vbNullString, Name)
> SetForegroundWindow hWnd
> If IsIconic(hWnd) Then OpenIcon hWnd
> Exit Function
> End If
> End If
> Rekkyo = True
>End Function
上記のコード意味がよくわかりませんが(申し訳ありません)、
とりあえず試してみました。
すると
「実行時エラー’49’
DLLが正しく呼び出せません」
とエラーメッセージが出力されてしまいました。どうしたらよろしいでしょうか?
それと併わせて、IEいがいの場合は
"*Microsoft Internet Explorer*"
の部分を他のアプリケーションの名前に変えればよろしいのですか?教えてください。
>
>こんな感じになります。MyWindow_SetFront を実行してみて下さい。
>なお、IE ならもう少し簡単に・・
>
>Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) _
>As Long
>Declare Function OpenIcon Lib "user32" (ByVal hWnd As Long) As Long
>Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Long
>
>Sub IE_SetFront()
> Dim MyShell As Object, MyWindow As Object, objIE As Object
> Dim hWnd As Long
>
> Set MyShell= CreateObject("Shell.Application")
> For Each MyWindow In MyShell.Windows
> If TypeName(MyWindow.document) = "HTMLDocument" Then
> Set objIE = MyWindow: Exit For
> End If
> Next
> If Not objIE Is Nothing Then
> hWnd = objIE.hwnd
> SetForegroundWindow hWnd
> If IsIconic(hWnd) Then OpenIcon hWnd
> End If
> Set objIE = Nothing: Set MyShell = Nothing
>End Sub
>
>でも出来ますが。
はい、こちらはエラーも出ず動作いたしました。ありがとうございます。
|
|