Страницы: 1
RSS
Активация окна IE сразу после запуска макроса
 
Добрый день!

Подскажите, пожалуйста, как можно сделать так, чтобы после запуска макроса из 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
Изменено: footballplayer - 12.08.2017 15:23:48
 
Попробуйте так:
Код
Sub test()
    x = Shell("""C:\Program Files\Internet Explorer\IEXPLORE.EXE""" & """http://www.planetaexcel.ru""", vbNormalNoFocus)
    '....... Далее Ваш макрос
End Sub
 
Юрий М, спасибо за ответ!

Ваш макрос работает отлично, но это немного не то, что мне нужно :-)
Изначально, макрос запускаю из Экселя при уже открытом IE и открытом в нем нужно сайте. По сути, все необходимые приложения перед запуском макроса открыты.
Мне необходимо сразу после запуска макроса, перенести фокус на браузер IE, т.к. в макросе использую несколько команд SendKeys, которые корректно работают только при активированном окне браузера IE.
На этом этапе у меня произошла загвоздка, не могу передать фокус на уже открытый IE.  
 
Цитата
footballplayer написал:
Изначально, макрос запускаю из Экселя при уже открытом IE и открытом в нем нужно сайте
Закройте его и перед Вашими SendKeys выполните одну строку (заменив сайт), которую я показал )
 
Попробуйте 2 строки подряд:
oIE.Visible = False
oIE.Visible = True
 
ZVI, огромное Вам спасибо!

Ваш способ работает, IE фокусируется отлично)

Скажите, пожалуйста, а теоретически можно проверить код:

Код
oIE.Visible = True

На успешность исполнения? То есть, стал ли браузер активным или нет, чтобы в случае ошибки фокуса браузера, код повторился до момента, когда фокус установится точно?

Страницы: 1
Наверх