dポイントプレゼントキャンペーン実施中!

Microsoft-VisualBasic6でプログラミングしてます。

外部から(不特定の)ファイル名を指定して、
VBモジュールを起動して処理をしたいのですが、
C言語でいう、(argv,argc)みたいなものを使って(いわゆるコマンドライン引数)、
VBプログラミングする方法を教えて下さい。

<実行例>
 ・(モジュール名) (任意のファイル名)
  vbmodule.exe sample-a.cvs

A 回答 (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)]
<<プロジェクト名>>のプロパティ
を選択して、
[実行可能ファイルの作成]の中にある、コマンドライン引数に文字列を入れてあげると、毎回コンパイルして実験しないでも、開発環境でテストができます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/31 14:21

コマンドの引数の分解などはSplit関数を使用すると簡単です。



添え字の無い文字型配列を宣言しておいて
文字列配列()=Split(Command$," ")
とすると分解できます。

何件あるか、はUBound(文字列配列())で取得できます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/31 14:24

「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 で確認しました。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/31 14:23

Commandという関数で取得できますよ。



以下例。
Dim strCmdLine As String
strCmdLine = Command()
以上

をForm_Loadに記述すれば、
strCmdLineには"sample-a.cvs"が入ります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/31 14:23

Command$という関数がパラメータを文字列で持っています。


複数のパラメータを使用する場合は、
スペースで分割する必要があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/31 14:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!