『Excelでファイル一覧』FileSystemObject編 その2
前回の続きで「FileSystemObject」の使い方(ファイルやフォルダの「削除」、「コピー」、「移動」をご案内します。
■FileSystemObjectの使い方(続き)
※各プログラムの1行目のDim~ と 2行目のSet~は前回説明した通り、「FileSystemObject」を使うときのお決まりです。
◇ファイル・フォルダの削除
・ファイルの削除はDeleteFileメソッドを使います。
1つ目の引数に削除したいファイル名を指定します。ファイル名にはワイルドカードも指定でき、複数ファイルを削除することも可能です。
2つ目の引数はFalseがデフォルトの値(省略した場合)で、Trueを指定した場合は読み取り専用ファイルも削除します。
———————————————
Sub FileDelete()
Dim fso As FileSystemObject
Set fso = CreateObject(“Scripting.FileSystemObject”)
fso.DeleteFile “C:\Users\user\Desktop\test.txt” ‘—-①
‘ ワイルドカードを使用する場合は[*]を使い次のように変更します。
‘ この場合は、「test」で始まり「.txt」で終わるファイル名は全て該当します。
fso.DeleteFile “C:\Users\user\Desktop\test*.txt” ‘—-②
End Sub
———————————————
① ユーザーのデスクトップにある「test.txt」というファイルを削除します。
② ユーザーのデスクトップにある「test」で始まり「.txt」で終わる名前のファイルを全て削除します。
・フォルダの削除はDeleteFolderメソッドを使います。
DeleteFileメソッド同様、1つ目の引数には削除したいフォルダのパス(ワイルドカード可)を指定し、2つ目はFalseがデフォルトの値(省略した場合)で、Trueを指定すると読み取り専用フォルダでも削除します。
———————————————
Sub FolderDel()
Dim fso As FileSystemObject
Set fso = CreateObject(“Scripting.FileSystemObject”)
fso.DeleteFolder “C:\Users\user\Desktop\Test” ‘—-①
‘ ワイルドカードを使用する場合
fso.DeleteFolder “C:\Users\user\Desktop\Test*” ‘—-②
End Sub
———————————————
① ユーザーのデスクトップにある「Test」というフォルダを削除します。
② ユーザーのデスクトップにある「Test」で始まる名前のフォルダを全て削除します。
◇ファイル・フォルダのコピー
・ファイルのコピーにはCopyFileメソッドを使います。コピー元、コピー先は必須で、3つ目の引数は上書き可否の真偽値(TrueかFalse)を指定します。Trueがデフォルトです。
———————————————
Sub FileCopy()
Dim fso As FileSystemObject
Set fso = CreateObject(“Scripting.FileSystemObject”)
fso.CopyFile “C:\Users\user\Desktop\test.txt”, _
“C:\Users\user\Documents\test.txt”, False
End Sub
———————————————
※ユーザーのデスクトップの「test.txt」をユーザーのドキュメントフォルダへコピーしています。
・フォルダのコピーにはCopyFolderメソッドを使います。CopyFileメソッド同様でコピー元、コピー先は必須。3つ目の引数はフォルダの上書き可否を決める真偽値をとります。
———————————————
Sub FolderCopy()
Dim fso As FileSystemObject
Set fso = CreateObject(“Scripting.FileSystemObject”)
fso.CopyFolder “C:\Users\user\Desktop\Test”, _
“C:\Users\user\Documents\Test”, False
End Sub
———————————————
※ユーザーのデスクトップにある「Test」というフォルダをユーザーのドキュメントフォルダへコピーしています。
◇ファイル・フォルダの移動
・ファイルの移動にはMoveFileメソッドを使います。移動元と移動先を引数で指定します。移動元にはワイルドカードを使用できるので、複数のファイルを移動できます。
※注)移動先に同名のファイルがあるとエラーになります。
———————————————
Sub FileMove()
Dim fso As FileSystemObject
Set fso = CreateObject(“Scripting.FileSystemObject”)
fso.MoveFile “C:\Users\user\Desktop\test.txt”, _
“C:\Users\user\Documents\test.txt”
End Sub
———————————————
※ユーザーのデスクトップにある「test.txt」をユーザーのドキュメントフォルダへ移動しています。
・フォルダの移動はMoveFolderメソッドを使います。MoveFileメソッドと同様で、移動元と移動先を引数にとり、移動元にはワイルドカードを使用できます。
———————————————
Sub FolderMove()
Dim fso As FileSystemObject
Set fso = CreateObject(“Scripting.FileSystemObject”)
fso.MoveFolder “C:\Users\user\Desktop\Test”, _
“C:\Users\user\Documents\Test”
End Sub
———————————————
※ユーザーのデスクトップにある「Test」というフォルダをユーザーのドキュメントフォルダへ移動しています。
FileSystemObjectを使った、ファイルとフォルダの「削除」、「コピー」、「移動」をご紹介しました。
次回は、FileSystemObjectを使ってファイル一覧を作成してみます。