● 概要 ●
構文 Object.DeleteFile FileSpec, Force
Object.MoveFile Source, Destination
設定項目 内容
Object FileSystemObjectオブジェクトを指定[省略不可]
FileSpec 削除するファイル名を指定[省略不可]
Force TrueまたはFalseを指定[省略可能]
Source 移動するファイル名を指定[省略可能]
Destination 移動先を指定[省略可能]
FileSystemObjectオブジェクトのDeleteFileメソッドは、指定したファイルを削除します。
MoveFileメソッドはファイルを移動します。
DeleteFileメソッドの引数にFalseを指定すると、読み取り専用のファイルは削除されません。
引数にTrueを指定すると、読み取り専用のファイルも削除されます。
MoveFileメソッドの引数には、移動先フォルダ名、または移動先フォルダと新しいファイル名を指定します。
DeleteFileメソッドの引数(削除するファイル名)と、MoveFileメソッドの引数(移動するファイル名)にはワイルドカードを使用できます。
サンプルは、「D:\AccessVBA」フォルダの「File01.txt」ファイルを「D:\Access」フォルダにファイル名を「File02.txt」として移動しています。
移動先に同名のファイルが存在するとエラーが発生するため、移動前に同名のファイルを削除しています。
● サンプル ●
'ファイルを移動(削除)する(FileSystemオブジェクト)
' [ツール]→[参照設定]で「Microsoft Scripting Runtime」をチェック
Sub Sample()
Dim myFileSystem As New Scripting.FileSystemObject
On Error Resume Next 'エラーを無視する
'移動先の同名ファイルを削除しておく
myFileSystem.DeleteFile "D:\Access\File02.txt"
On Error GoTo ErrHandler
'ファイルを移動する
myFileSystem.MoveFile "D:\AccessVBA\File01.txt", "D:\Access\File02.txt"
Exit Sub
ErrHandler:
MsgBox Err.Description
End Sub
● 補足1 ●
FileSystemObjectオブジェクトを利用してファイルをコピーするには、CopyFileメソッドを使います。
FileCopyステートメントを使ってコピーすることもできます。
● 補足2 ●
FileSystemObjectオブジェクトは利用する前に参照設定を行う必要があります。
参照設定は、[ツール]メニューから[参照設定]コマンドを選択して[参照設定]ダイアログボックスを表示します。
ダイアログボックスが表示されたら、一覧から「Microsoft Scripting Runtime」をチェックして[OK]ボタンをクリックします。