• ベストアンサー

VB6で、C言語の(argv,argc)みたいな、コマンドライン引数を実現する方法は?

Microsoft-VisualBasic6でプログラミングしてます。 外部から(不特定の)ファイル名を指定して、 VBモジュールを起動して処理をしたいのですが、 C言語でいう、(argv,argc)みたいなものを使って(いわゆるコマンドライン引数)、 VBプログラミングする方法を教えて下さい。 <実行例>  ・(モジュール名) (任意のファイル名)   vbmodule.exe sample-a.cvs

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.5

これで取得可能です。 ファイルをドラッグしてきたときは、ファイルのパスが入ります。 複数のドラッグの場合は、スペース区切りでやってきます。 注意すべきは、昔のDOS企画に添わないスペースや、ファイル名が8文字以上のあるファイルは、ダブルコーデーションで覆われて渡されます。 例 c:\1.txt "C:\Program Files\Microsoft Visual Studio\VB98" c:\Winnt\win.exe といった感じです。 ※注意 Uboundだけでは使用できませんのであしからず・・・ Sub Main()   Dim strPara As String   strPara = Command()      MsgBox strPara End Sub 上記のソースで試してみましょう。 開発環境では ツールバーの[プロジェクト(P)] <<プロジェクト名>>のプロパティ を選択して、 [実行可能ファイルの作成]の中にある、コマンドライン引数に文字列を入れてあげると、毎回コンパイルして実験しないでも、開発環境でテストができます。

noname#2802
質問者

お礼

とてもわかり易いアドバイス、ありがとうございました。

その他の回答 (4)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

コマンドの引数の分解などはSplit関数を使用すると簡単です。 添え字の無い文字型配列を宣言しておいて 文字列配列()=Split(Command$," ") とすると分解できます。 何件あるか、はUBound(文字列配列())で取得できます。

noname#2802
質問者

お礼

ご回答、ありがとうございました。

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.3

「Command 関数」で、お望みのことができます。 試しに、次のようなプログラムをコンパイルして、引数にいろいろ書いて動かしてみて下さい。   Private Sub Form_Load()    Text1.Text = Command  ← Text1 という名前のテキストボックスを作って…   End Sub これで TEST.EXE を作成したとすると、例えば   TEST sample-a.cvs で、テキストボックスには sample-a.cvs と表示されます。 Command 関数のヘルプで使用例を見ると、もっと詳しい情報(argc/argv のように各ワードに分解する方法など)が書かれていますので、ご参照下さい。 以上、VB6 SP5 で確認しました。

noname#2802
質問者

お礼

ご回答、ありがとうございました。

回答No.2

Commandという関数で取得できますよ。 以下例。 Dim strCmdLine As String strCmdLine = Command() 以上 をForm_Loadに記述すれば、 strCmdLineには"sample-a.cvs"が入ります。

noname#2802
質問者

お礼

ご回答、ありがとうございました。

  • yoshioz
  • ベストアンサー率28% (10/35)
回答No.1

Command$という関数がパラメータを文字列で持っています。 複数のパラメータを使用する場合は、 スペースで分割する必要があります。

noname#2802
質問者

お礼

ご回答、ありがとうございました。

関連するQ&A