◆◆MS-Excel2000スキルアップ講座/VBA編◆◆

コマンドラインの引数を取得する方法
VB5のプログラムからshell(C:\Program Files\MicrosoftOffice\OfficeExcel.exe "12345")
の様な事をしてエクセルを起動させて、エクセルのVBAのなかで "12345"を取得することは可能でしょうか。
以下のような方法で可能です。

Private Declare Function GetCommandLine _
Lib "kernel32" Alias "GetCommandLineA" () As Long
Private Declare Function lstrcpy _
Lib "kernel32" Alias "lstrcpyA" _
(ByVal lpString1 As String, _
ByVal lpString2 As Any) As Long

Private Sub Auto_open()

Dim sBuf As String

sBuf = Space$(255)
Call lstrcpy(sBuf, GetCommandLine())
MsgBox sBuf

End Sub

ですが、コマンドライン引数は限定されたものしか渡せないため、エラーメッセージが表示されてしまいます。そのため、使うのはちょっとためらわれます。

ファイルなどを経由してわたすのがいいと思います。