Я открываю SketchUp из Excel, затем запускаю плагин, использую приведенный ниже код, чтобы открыть SketchUp, затем использую SendKeys, чтобы выбрать плагин.
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Sub fLaunchProgram(ByVal sProgram As String)
Dim ProcessHandle As Long
Dim ProcessId As Long
On Error GoTo errExit
ProcessId = Shell(sProgram, vbNormalFocus)
ProcessHandle = OpenProcess(&H1F0000, 0, ProcessId)
WaitForSingleObject ProcessHandle, INFINITE
Exit Sub
errExit:
MsgBox "External program " & sProgram & " was not found", vbCritical, " fLaunchProgram"
End Sub
'To load SU
Sub pTest()
fLaunchProgram ("C:\Program Files\SketchUp\SketchUp 2015\SketchUp.exe")
End Sub
Sub Button1_Click()
pTest
SendKeys "~ (tilde)"
SendKeys "%{left}{DOWN}n~"
SendKeys "%x{DOWN}~"
SendKeys "{NUMLOCK}", True
SendKeys "%fx"
SendKeys "n"
End Sub
Последние строки представляют Alt-File-Exit, затем выскакивает msgbox, n должно представлять «нет», и программа должна закрыться, она не распознает «n» для «нет»
Если ключи отправки не будут работать, кто-нибудь знает, как закрыть SketchUp из Excel?