Есть .xlsm , в котором существует макрос, для полного выполнения задания которого задействована еще и командная строка. Необходимо как-то передать из cmd экселю весть о том, что код выполнен и нажать vbOk в msgbox, который умышленно притормаживает выполнение vba-кода, на время работы bat.
Код
sub 123()
for i=1 to 100
if i = 50 then
Shell ("C:\Program Files (x86)\Google\Chrome.bat")
msgbox "Продолжить?", vbOk
i = 100
end if
next
end sub
можно вызвать окно сообщений, которое умеет закрываться само (через указанное количество миллисекунд)
Код
#If Win64 Then
Private Declare PtrSafe Function MessageBoxTimeOut Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As LongLong
#Else
Private Declare Function MessageBoxTimeOut Lib "user32" Alias "MessageBoxTimeoutA" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
#End If
Sub TmOutMsgbox()
MessageBoxTimeOut 0, "закроется через " & Cells(1) * 1000 & " миллисекунд", "Это окно", 4, 0, dwMilliseconds:=Cells(1) * 1000
End Sub
БМВ, подскажите, пожалуйста, как Хрому правильно передать аргумент в виде ссылки, чтобы он воспринял его за адрес и открыл в новой вкладке? Вариант использовал такой, но он не пашет:
Код
'=======Вызвать объект - ГУГЛ ХРОМ для скачивания отчетов и дальнейшего закрытия=====
Set WshShell = CreateObject("WScript.Shell")
Set ГуглХром = WshShell.Exec("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
ГуглХром.AppActivate ГуглХром.ProcessID
ГуглХром.windowStyle = 3
'====================================================================================
ГуглХром.Arguments = "http://old.ru"
ГуглХром.Arguments = " http://old.ru"
ГуглХром.Arguments = " -http://old.ru"
ГуглХром.Arguments = "-http://old.ru"