Visual Basic で IE オブジェクトにフォーカスを設定する方法を知っている人はいますか? を試しましmyieobject.SetFocus
たが、このステートメントでコンパイラ エラーが発生しました。
質問する
25491 次
4 に答える
5
機能を実行した後、Internet Explorer に「フォーカスを設定」するために自分のスプレッドシートが必要だったので、わざわざクリックする必要はありませんでした。これは私がうまくいくことがわかったものです:
Const myPageTitle As String = "Title of my webpage"
Const myPageURL As String = "http://www.mywebpage.com"
Dim myIE As SHDocVw.InternetExplorer
Dim myIE As InternetExplorer
Set myIE = GetOpenIEByTitle(myPageTitle, False)
myIE.visible = false
DoEvents
myIE.visible = true
'for some reason, making the page invisible then visible always ensures it pops up
Function GetOpenIEByTitle(i_Title As String, _
Optional ByVal i_ExactMatch As Boolean = True) As SHDocVw.InternetExplorer
Dim objShellWindows As New SHDocVw.ShellWindows
If i_ExactMatch = False Then i_Title = "*" & i_Title & "*"
'ignore errors when accessing the document property
On Error Resume Next
'loop over all Shell-Windows
For Each GetOpenIEByTitle In objShellWindows
'if the document is of type HTMLDocument, it is an IE window
If TypeName(GetOpenIEByTitle.document) = "HTMLDocument" Then
'check the title
If GetOpenIEByTitle.document.Title Like i_Title Then
'leave, we found the right window
Exit Function
End If
End If
Next
End Function
于 2014-06-26T02:05:20.317 に答える
3
これを試して:
'First, hide the object even if it's visible
myieobject.Visible = False
' Second, show the object to focusing
myieobject.Visible = True
于 2019-12-30T12:31:33.833 に答える
1
set .Visible=True
- ポップアップのどこかで画面を失った場合、特定のタイトルをアクティブにするためにウィンドウ タイトルをループする必要があります。
Dim objShell As Shell
Dim objIndex As InternetExplorer
Set objShell = New Shell
For Each objIndex In objShell.Windows
If TypeName(objIndex.Document) = "HTMLDocument" Then
If InStr(objIndex.Document.Title, "Stack Overflow") > 0 Then
objIndex.Visible = True
Exit For
End If
End If
Next objIndex
IE オブジェクトでできることは次のとおりです: MSDN
于 2012-06-25T21:40:00.240 に答える
0
これを試して。シェル コマンドで Internet Explorer を開きます。ここで、フォーカス (フォーカスされた小さなウィンドウ) を定義し、その後、そのシェル/エクスプローラー ウィンドウをキャッチして、Internet Explorer オブジェクトとして定義します。たぶん、寝るよりも良い方法があります。
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub call_IE()
Dim IE As InternetExplorer
Dim htmldoc As HTMLDocument
Set IE = Open_Focused_explorer()
IE.Navigate "google.com"
Set htmldoc = IE.Document
End Sub
Function Open_Focused_explorer() As InternetExplorer
Dim shellWins As ShellWindows
'if windows are 64bit IE is on diferent location
#If Win64 Then
Shell "C:\Program Files (x86)\Internet Explorer\iexplore.exe", vbNormalFocus
#Else
Shell "C:\Program Files\Internet Explorer\iexplore.exe", vbNormalFocus
#End If
'wait until explorer is full loaded
Sleep 4000
On Error Resume Next
'create collection of all explorers
Set shellWins = New ShellWindows
If shellWins.Count > 0 Then
' Get last one
Set Open_Focused_explorer = shellWins.Item(shellWins.Count - 1)
End If
On Error GoTo 0
End Function
于 2018-02-27T15:05:38.517 に答える