OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 困ってます
  • 質問No.160524
  • 閲覧数2826
  • ありがとう数23
  • 気になる数0
  • 回答数5
  • コメント数0

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

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

<実行例>
 ・(モジュール名) (任意のファイル名)
  vbmodule.exe sample-a.cvs
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル12

ベストアンサー率 65% (276/422)

これで取得可能です。
ファイルをドラッグしてきたときは、ファイルのパスが入ります。
複数のドラッグの場合は、スペース区切りでやってきます。
注意すべきは、昔の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

とてもわかり易いアドバイス、ありがとうございました。
投稿日時 - 2001-10-31 14:21:13
-PR-
-PR-

その他の回答 (全4件)

  • 回答No.1
レベル9

ベストアンサー率 28% (10/35)

Command$という関数がパラメータを文字列で持っています。 複数のパラメータを使用する場合は、 スペースで分割する必要があります。 ...続きを読む
Command$という関数がパラメータを文字列で持っています。
複数のパラメータを使用する場合は、
スペースで分割する必要があります。
お礼コメント
noname#2802

ご回答、ありがとうございました。
投稿日時 - 2001-10-31 14:22:45


  • 回答No.2
レベル11

ベストアンサー率 30% (72/239)

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

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

をForm_Loadに記述すれば、
strCmdLineには"sample-a.cvs"が入ります。
お礼コメント
noname#2802

ご回答、ありがとうございました。
投稿日時 - 2001-10-31 14:23:10
  • 回答No.3
レベル12

ベストアンサー率 40% (237/589)

「Command 関数」で、お望みのことができます。 試しに、次のようなプログラムをコンパイルして、引数にいろいろ書いて動かしてみて下さい。   Private Sub Form_Load()    Text1.Text = Command  ← Text1 という名前のテキストボックスを作って…   End Sub これで TEST.EXE を作成したとすると、例えば ...続きを読む
「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

ご回答、ありがとうございました。
投稿日時 - 2001-10-31 14:23:40
  • 回答No.4
レベル14

ベストアンサー率 33% (1403/4213)

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

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

何件あるか、はUBound(文字列配列())で取得できます。
お礼コメント
noname#2802

ご回答、ありがとうございました。
投稿日時 - 2001-10-31 14:24:04
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ