Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12556 / 13644 ツリー ←次へ | 前へ→

【9848】VBAで開くバッチファイルにパラメータを MAT 03/12/18(木) 17:29 質問
【9923】Re:VBAで開くバッチファイルにパラメータを Ron 03/12/22(月) 17:43 回答
【9927】Re:VBAで開くバッチファイルにパラメータを でれすけ 03/12/24(水) 9:03 回答

【9848】VBAで開くバッチファイルにパラメータを
質問  MAT  - 03/12/18(木) 17:29 -

引用なし
パスワード
   調べても分からないので、どなたかご存知のかたがいらっしゃったら。
VBAで開くバッチファイルにパラメータを渡したいのです。
バッチファイルは開くことはできるのですが、どのように
パラメータを渡せばいいか分かりません。
どうぞよろしくお願いします。

【9923】Re:VBAで開くバッチファイルにパラメータを
回答  Ron E-MAIL  - 03/12/22(月) 17:43 -

引用なし
パスワード
   こんにちは。
レスが無いようなので、一つの方法として。
batファイルを作ってしまう方法です。
下記のbatファイルのTest01.txtの部分をパラメータとして渡します。
---batファイル("i:\test\Test.bat")の内容---
Start Test01.txt
del ダミー.txt
-------------------------------------------

Sub test()

  Const batFile As String = "Test.bat"
  Const TempFile As String = "ダミー.txt"
  Dim myFile As String
  Dim myStr As String
  Dim fn As Integer
  ChDrive "i\:"
  ChDir "i:\test"
  myFile = "Test01.txt" 'batファイルへ渡すパラメータ
  myStr = "Start " & myFile

  '同期を取るためのダミーファイル作成
  fn = FreeFile
  Open TempFile For Output As #fn
  Close #fn
  
  Open batFile For Output As #fn
  Print #fn, myStr
  Print #fn, "del " & TempFile
  Close #fn
  Shell "cmd /c " & batFile
  'バッチ終了(del ダミー.txt)の終了まち
  Do Until Dir(TempFile) = ""
    DoEvents
  Loop

End Sub
では。

【9927】Re:VBAで開くバッチファイルにパラメータを
回答  でれすけ  - 03/12/24(水) 9:03 -

引用なし
パスワード
   おはようございます。

パラメータというのがコマンドラインの引数のことでしたら、
Batファイルからは、%0,%1,%2...という形式で参照できます。
ただし、%0は実行したコマンド名(batファイル名)です。

--- test.bat ---------
@echo off
echo %1 が %0 にパラメータとして渡されました。
----------------------
というBatファイルがあるとして、

以下のようなVBAのプロシジャを実行して、
result.txtの内容を確認してみてください。

Sub sample()
Dim arg As String
arg = "abcd"
Shell "d:\test.bat " & arg & "> d:\result.txt"
End Sub

12556 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free