Подскажите, пожалуйста, как можно сделать так, чтобы после запуска макроса из Excel, сразу же разворачивалось окно браузера IE? Браузер - IE 11.
Команда
Код
ie.visible = true
или
Код
ie.activate
- не работают.
Работаю с уже открытым браузером IE. Перехватываю его в списке открытых по следующему коду:
Код
Const sApplicationName As String = "Internet Explorer"
'ShellWindows -
Internet Explorer.
Dim oShellWindows As New SHDocVw.ShellWindows
Dim oIE As SHDocVw.WebBrowser
Dim bFlag As Boolean
If oShellWindows.Count = 0 Then
MsgBox "IE не открыт!", vbCritical
Exit Sub
End If
'
For Each oIE In oShellWindows
If oIE.Application = sApplicationName Then
bFlag = True
oIE.Visible = True
Exit For
End If
Next oIE
If bFlag = False Then
MsgBox "IE не открыт", vbCritical
Exit Sub
End If
Sub test()
x = Shell("""C:\Program Files\Internet Explorer\IEXPLORE.EXE""" & """http://www.planetaexcel.ru""", vbNormalNoFocus)
'....... Далее Ваш макрос
End Sub
Ваш макрос работает отлично, но это немного не то, что мне нужно :-) Изначально, макрос запускаю из Экселя при уже открытом IE и открытом в нем нужно сайте. По сути, все необходимые приложения перед запуском макроса открыты. Мне необходимо сразу после запуска макроса, перенести фокус на браузер IE, т.к. в макросе использую несколько команд SendKeys, которые корректно работают только при активированном окне браузера IE. На этом этапе у меня произошла загвоздка, не могу передать фокус на уже открытый IE.
Скажите, пожалуйста, а теоретически можно проверить код:
Код
oIE.Visible = True
На успешность исполнения? То есть, стал ли браузер активным или нет, чтобы в случае ошибки фокуса браузера, код повторился до момента, когда фокус установится точно?