ExcelのVBAではCommandが使えない?


zedan  2004-11-02 01:33:47  No: 86395

こんにちは。

VB6.0のプログラムをコマンドラインから呼び出す場合は
プログラム内において、Command関数でパラメータが取得できました。
しかし、エクセルのVBAではパラメータが取得できません。

たとえば

C:\>test.xls param1
とやって、プログラム内には
if Command = "" then
 msgbox "no parameter"
else
 msgbox Command
end if

としても、必ず"no parameter"が表示されます。


魔界の仮面弁士  2004-11-02 02:30:35  No: 86396

基本的に、VBA では Command関数は機能しない事になっています。
ヘルプにも、そのように書かれていますよね。

Accessのように、/cmd オプションでコマンドライン指定可能な物も
ありますが、少なくともExcelでは使えないようです。


zedan  2004-11-02 02:41:32  No: 86397

ありがとうございます。
ということは、Excelでは起動パラメータにファイル名を
渡し、プログラムで開くという風にするには
みなさんはどうされているのでしょうか?


あん  2004-11-02 02:55:50  No: 86398

C:\>test.xls param1

test.xls だけエクセルに渡ってると思いますよ。


zedan  2004-11-02 03:00:34  No: 86399

そうでなのですか
commandメソッドではなにも受け取れないです。
また、param1を受け取れないと意味がありません


魔界の仮面弁士  2004-11-02 03:02:27  No: 86400

excelのパラメータで定義されているのは、ブック名以外では
「/r」「/e」「/p」「/safe」パラメータぐらいしか無いようですね。

> 起動パラメータにファイル名を渡し

Excel.exe に xlsファイルの名前を渡す、という意味なら可能ですね。
『Excel.exe C:\Book1.xls』だけでいけますし。

そうではなく、VBAマクロにファイル名(文字列データ)を渡したいなら、
たとえば、固定のファイル名(たとえば、C:\book1.ini)に、ファイル名の
情報を書いておき、そのファイルの内容を読み取ったりすれば良いかと。


あん  2004-11-02 03:21:06  No: 86401

VBスクリプトを作成して呼び出す方法とか
例えばこんな感じ
test.vbsの中身
---------------------------------------------------------
Set args = Wscript.Arguments
For Each c in args
    s = s & c & " "
Next

Set objEXCEL = CreateObject("excel.application")
Set objBook = objEXCEL.Workbooks.Open(args.item(0))

objEXCEL.Visible = True
objEXCEL.Workbooks.Application.Caption=s

Set objBook1 = Nothing
Set objEXCEL = Nothing
--------------------------------------------------------

C:\>test.vbs test.xls param1
とやって、プログラム内には
if Application.Caption = "" then
 msgbox "no parameter"
else
 msgbox Application.Caption
end if

Application.Captionじゃなくてもいいと思うけど
参考まで


zedan  2004-11-02 03:23:31  No: 86402

そうなのですか・・ありがとうございます。

excelのvbaにファイルを渡し、テキストファイルをエクセルから
読み込みたいのが現状です。

excelを複数起動し、それぞれに対応したそのときに用意される
複数のテキストファイルをよみこませたいので、
パラメータでファイル名を渡したかったのでした。

abc.xlsに対してabc.txtを用意し、エクセルvbaでは自ファイル名から
.xlsを取り除き、.txtを付与し、ファイルを開く、のように
やってみようかなと思います。怖いですが・・・


ABC  2004-11-02 07:43:19  No: 86403

一つ疑問なんですがDOS窓から
C:\>test.xls 
こんな感じにエクセルファイル名を直接実行してExcelが起動しますか?
WinXP + Excel2000では起動しませんが。


ABC  2004-11-02 07:46:30  No: 86404

すみません、ちゃんと起動されました。
DOS窓からアプリ指定しなくても関連付けられているのが起動するんですね。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加