10代と話して驚いたこと

エクセルVBA超初心者です。
言語は基本的にC言語しか知りません。

エクセルVBAでボタンを実行したら
たとえば以下のような内容のバッチファイルが
デスクトップに出来る・・・
というものを作らなくてはいけなくなりました。
色々調べてるのですが、ファイル入出力関連の記述の仕方がまったくわからず、あまり時間がなく困っています。

ちなみにバッチファイルの内容は



REM サーバー上からプログラムフォルダをダウンロードする。
XCOPY \\hk001a24\va\data\ツール配信用\セグメント D:\セグメント /I/Y/F/E
REM フォルダへ移動する。
D:
CD D:\セグメント
REM ショートカットをデスクトップに作成する。
csc.exe "D:\セグメント\入力シート.xls" "?desktop?\セグメント入力シート.lnk"
csc.exe "D:\セグメント\出力シート.xls" "?desktop?\セグメント出力シート.lnk"
csc.exe "D:\セグメント\出力帳票" "?desktop?\セグメント出力帳票.lnk"
exit


ここまで。。。
これをボタン実行後、
test.batというファイルに作成しデスクトップに保存する。

似たようなロジックや参考になるURLがあったら教えてください。
長々とすみません、よろしくお願いいたします。

A 回答 (2件)

Sub MakeBat()


Dim n As Long
Dim DesktopPath As String

n = FreeFile

DesktopPath = CreateObject("WScript.Shell").SpecialFolders("desktop")

Open DesktopPath & "\Test.bat" For Output As #n
Print #n, "Rem サーバー上からプログラムフォルダをダウンロードする。"
Print #n, "XCOPY \\hk001a24\va\data\ツール配信用\セグメント D:\セグメント /I/Y/F/E"
Print #n, "Rem フォルダへ移動する。"
Print #n, "D:"
Print #n, "CD D:\セグメント"
Print #n, "Rem ショートカットをデスクトップに作成する。"
Print #n, "csc.exe ""D:\セグメント\入力シート.xls""; ""?desktop?\セグメント入力シート.lnk"""
Print #n, "csc.exe ""D:\セグメント\出力シート.xls"" ""?desktop?\セグメント出力シート.lnk"""
Print #n, "csc.exe ""D:\セグメント\出力帳票"" ""?desktop?\セグメント出力帳票.lnk"""
Print #n, "exit"
Close #n
End Sub
    • good
    • 1
この回答へのお礼

全部ご回答頂きましてありがとうございました。
これからちゃんと勉強していきます。
またよろしくお願いいたします。

お礼日時:2006/09/06 16:52

バッチの内容が固定なら、事前に雛型として作成しておき、コマンドボタンクリック時に、雛型のバッチファイルをディスクトップにコピーしてやればよいのでは?



そうすれば、VBAでファイルを作成する必要がなくなりますが…

この回答への補足

すみません、説明が足りませんでした。
バッチの内容は固定ではなく可変なのです。
実行ボタンを押される前にかデータをINPUTしてから
実行する形になるのでプログラムが必要になるのかと・・・

補足日時:2006/09/06 16:35
    • good
    • 0

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

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


おすすめ情報