FSO(FileSystemObject)の事前準備
前回の記事でFSO(FileSystemObject)を用いてできることと事前準備についてお伝えしました。今回はサンプルコードをご紹介します。
FSO(FileSystemObject)のコード紹介~ファイル操作~
①ファイルのコピー
「FSO.CopyFile “コピーするファイル” , “コピー先のフォルダ”」の形式で記載します。
以下のコードはデスクトップにある「a.jpg」というファイルをEドライブの「gazou」というフォルダにコピーします。
(「gazou」というフォルダが存在しないとエラーになります。)
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
FSO.CopyFile “D:\a.jpg”, “E:\gazou”
Set FSO = Nothing
End Sub
また名前を変更する場合は「FSO.CopyFile “コピーするファイル” , “コピー先のフォルダ\新しいファイル名”」の形式で記載します。
以下のコードはDドライブにあるa.jpgというファイルをb.jpgの名前にしてEドライブにコピーします。
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
FSO.CopyFile “D:\a.jpg”, “E:\gazou\b.jpg”
Set FSO = Nothing
End Sub
ファイル名をワイルドカード(*)を用いて表すことで、複数のファイルを同時にコピーすることも可能です。
以下のコードはDドライブにある全てのjpgファイルをEドライブにコピーするコードです。
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
FSO.CopyFile “D:\*.jpg”, “E:\gazou\”
Set FSO = Nothing
End Sub
②ファイルの削除
ファイルの削除は「FSO.DeleteFile “削除するファイル名”」の形式で記載します。
以下のコードはDドライブのa.jpgのファイルを削除するものです。
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
FSO.DeleteFile “D:\a.jpg”
Set FSO = Nothing
End Sub
ワイルドカード(*)を使用して複数のファイルを一気に削除することもできます。
Dドライブのjpgのファイルを削除するコードは以下のようになります。
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
FSO.DeleteFile “D:\*.jpg”
Set FSO = Nothing
End Sub
③ファイルが存在するか調べる
ファイルが存在するか調べるコードは「FSO.FileExists(“存在するか調べるファイル名”)」で記述します。
主に条件分岐で、ファイルが存在する場合はある処理をして、ファイルが存在しない場合は別の処理をするなど処理を変える場合に使用します。
FSO.FileExists(“存在するか調べるファイル名”)はファイルが存在する場合True、存在しない場合Falseという値になります。
以下のコードはDドライブにa.jpgというファイルが存在する場合、Eドライブにb.jpgとしてコピーし、存在しない場合は「a.jpgはありません」とメッセージを出すサンプルコードです。
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
If FSO.FileExists(“C:\a.jpg”) = True Then
FSO.CopyFile “C:\a.jpg” “D:\b.jpg”
ElseIf
Msgbox ” a.jpgはありません”
End If
Set FSO = Nothing
End Sub
ファイルを作って処理してという流れをVBAで繰り返しているときにファイルがあるかどうかでの条件分岐はかなり使用頻度が高いです。
コメント