- ベストアンサー
VB6で、C言語の(argv,argc)みたいな、コマンドライン引数を実現する方法は?
Microsoft-VisualBasic6でプログラミングしてます。 外部から(不特定の)ファイル名を指定して、 VBモジュールを起動して処理をしたいのですが、 C言語でいう、(argv,argc)みたいなものを使って(いわゆるコマンドライン引数)、 VBプログラミングする方法を教えて下さい。 <実行例> ・(モジュール名) (任意のファイル名) vbmodule.exe sample-a.cvs
- みんなの回答 (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)] <<プロジェクト名>>のプロパティ を選択して、 [実行可能ファイルの作成]の中にある、コマンドライン引数に文字列を入れてあげると、毎回コンパイルして実験しないでも、開発環境でテストができます。
その他の回答 (4)
- bin-chan
- ベストアンサー率33% (1403/4213)
コマンドの引数の分解などはSplit関数を使用すると簡単です。 添え字の無い文字型配列を宣言しておいて 文字列配列()=Split(Command$," ") とすると分解できます。 何件あるか、はUBound(文字列配列())で取得できます。
お礼
ご回答、ありがとうございました。
- ysk6406
- ベストアンサー率40% (237/589)
「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 で確認しました。
お礼
ご回答、ありがとうございました。
- y_herohero
- ベストアンサー率30% (72/239)
Commandという関数で取得できますよ。 以下例。 Dim strCmdLine As String strCmdLine = Command() 以上 をForm_Loadに記述すれば、 strCmdLineには"sample-a.cvs"が入ります。
お礼
ご回答、ありがとうございました。
- yoshioz
- ベストアンサー率28% (10/35)
Command$という関数がパラメータを文字列で持っています。 複数のパラメータを使用する場合は、 スペースで分割する必要があります。
お礼
ご回答、ありがとうございました。
お礼
とてもわかり易いアドバイス、ありがとうございました。