即効テクニック

ファイル操作・他アプリケーションとの連携

ファイルを移動(削除)する

(Access 2000/2002)
● 概要 ●

構文  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]ボタンをクリックします。