mit einer bat Datei rufe ich eine Exceltabelle auf:
call "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" /e/autorun "c:\test\test.xlsm"
Anmerkung:
/Autorun muß ich als Parameter auslesen können; untre 32 bit geschah dieses wie folgt:
Private Declare PtrSafe Function GetCommandLine Lib "kernel32.dll" Alias "GetCommandLineA" () As Long
Private Declare PtrSafe Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" ( _
ByVal lpString As Any) As Long
Private Declare PtrSafe Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
ByRef pDst As Any, _
ByRef pSrc As Any, _
ByVal ByteLen As Long)
Private Sub Workbook_Open()
Dim strCmdLine As String, strArguments() As String
Dim lngArgumentsCount As Long, lngIndex As Long
Dim lngReturn As Long, lngLength As Long
lngReturn = GetCommandLine
lngLength = lstrlen(lngReturn)
If CBool(lngLength) Then
strCmdLine = Space$(lngLength)
Call CopyMemory(ByVal strCmdLine, ByVal lngReturn, lngLength)
End If
gn_cmdline = Left$(strCmdLine, InStr(strCmdLine & vbNullChar, vbNullChar) - 1)
If InStr(gn_cmdline, "/autorun") > 0 Then
gn_cmdline = "autorun"
Call start
endif
Irgendwie wird gn_cmdline nicht mehr korrekt gefüllt (Zusammenhang mit 64 bit?). Variable ist als public definiert.
Frage: hat jemand eine Idee?
Danke für Hilfe!
MfG
Heinz