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

お世話になります。

a.batというバッチファイルがあります。
このファイルを起動させた時にABC.xlsというEXCELが起動するようにしたいのですが、その際にバッチファイル側から"1303"という文字列をabc.xlsに引数として渡したいのです。

EXCEL側ではauto_open(a)で待ち受けて、このaに"1303"が入ってmsgで"1303"と表示させたいのですが、引数は省略出来ません、というエラーが出てしまいます。

どなたかやり方をご教授いただけませんでしょうか?よろしくお願い致します。
環境 WindowsXP SP3 Excel2003

==============================
バッチファイル側
==============================
@echo off

echo バッチファイルを実行します。

ABC.xls "1303"

echo 終了しました。

==============================
EXCEL VBA側
==============================
Sub auto_open(a As String)

Msg a

end sub

A 回答 (2件)

Excel には起動時に渡せるオプションがありませんね。


Batでは
Echo 1303 > d:\後で消す.txt
Explorer.exe d:\data\ABC.xls
rem ↑横着してます。"C:\・・・\excel.exe " "d:\data\ABC.xls" が王道です

Excelでは
Sub auto_open()
Dim ff As Integer
Dim buf As Variant
If Dir("d:\後で消す.txt") = "" Then
MsgBox "何もなし"
Exit Sub
Else
ff = FreeFile
Open "d:\後で消す.txt" For Input As ff
Input #ff, buf
MsgBox buf
Close ff
Kill "d:\後で消す.txt"
End If
End Sub

とか?
一時的に"d:\後で消す.txt"に書き込んで
Excelで読み込んだらKillで消してます。

1303 だけでなく任意の値なら
Echo %1 > d:\後で消す.txt
Explorer.exe d:\data\123\ABC.xls
というBatファイルを Test.bat 名で保存して
コマンドプロンプトから
・・・・\test.bat 999
などと・・・ですかね。
    • good
    • 0
この回答へのお礼

nicotinismさん、早速のご連絡ありがとうございました!

ご教授いただきました方法で実現できました!!
このようなやり方があったのですね!とても勉強になりました。

本当にありがとうございました!!助かりました!

お礼日時:2013/03/29 17:15

こんにちわ。



(試していないので申し訳ありませんが)

できません!というのが、回答になります。


ですが、下記のサイトのように、vbsをかませば、できるようです。

http://chaichan.lolipop.jp/vbtips/VBMemo20060824 …
    • good
    • 1
この回答へのお礼

ymdaさん、早速のご連絡ありがとうございました!

仰る通り、私のやり方ではダメだったようです。。

この度は大変勉強になりました。
ありがとうございました!

お礼日時:2013/03/29 17:18

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A