こんにちは!Lenocoです。本日も見てくださりありがとうございます。
今回はVBSについてのTips回です!!!
VBSでファイルをコピー
VBSで指定したファイルを同じディレクトリにコピーするVBSを作成してみましょう!
コード
Option Explicit
Dim FS
Dim excel
Dim buf
Dim newFile
'テキストファイルの選択
Set excel = CreateObject("Excel.Application")
buf = excel.GetOpenFilename("Text File,*.txt,All,*.*",1,"ファイルを選択して下さい","開く",false)
If buf <> False Then
newFile = replace(buf ,".txt","_コピー後.txt")
Set FS = CreateObject("Scripting.FileSystemObject")
FS.CopyFile buf, newFile
Else
WScript.Quit
End If
msgbox "完了!"
コードの説明
「Option Explicit」で、変数の宣言を強制しています。
変数を宣言します。VBSはデータ型を省略します。
CreateObjectでExcelアプリケーションへの参照を作成します。
こうすることでExcelの機能を利用してファイル選択ダイアログからファイルパスを取得することができます。
※取得するファイルは今回テキストファイルに限定しています
ファイルが選択された場合はbuf変数にフルパスが入っていますので、
If文の中に入ります。
コピーした後のファイル名を作成します。Replace関数を使用して元のファイル名の後に「_コピー後」とつけるよう指定します。
CreateObjectでFileSystemObjectオブジェクトのインスタンスを作成し、ファイル操作が行えるようにします。
FileSystemObjectのCopyFileメソッドを使用し、コピー元のファイルパス、コピー後のファイルパスを指定し、
ファイルをコピーします。
3つ目の引数overwriteにTrueを指定すると、同じ名前のファイルが既にある場合上書きされます。
Falseを指定するとエラーが返されます。省略した場合はTrueとみなされます。
最後に「完了!」のメッセージを出して処理を終了します。
なお、ファイルが選択されなかった場合は、If文のElseに入り、処理を強制終了させています。
さいごに
VBSでファイルをコピーする方法をご紹介しました。
次回はVBSでテキストファイルの中身を書き換える方法をご紹介します!
Lenoco