HOME > 即効テクニック > AccessVBA > ファイル操作・他アプリケーションとの連携 > フォルダを移動(コピー、削除)する

即効テクニック

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

フォルダを移動(コピー、削除)する

(Access 2000/2002)
● 概要 ●
構文    Object.MoveFolder Source, Destination
        Object.CopyFolder Source, Destination, OverWriteFiles
        Object.DeleteFolder FolderSpec, Force

設定項目        内容
Object          FileSystemObjectオブジェクトを指定[省略不可]
Source          移動する(コピーする)フォルダを指定[省略不可]
Destination     フォルダの移動先(コピー先)を指定[省略不可]
OverWriteFiles  既存ファイルの上書き可否をTrueまたはFalseで指定[省略可能]
FolderSpec      削除するフォルダを指定[省略不可]
Force           TrueまたはFalseを指定[省略可能]


FileSystemObjectオブジェクトのMoveFolderメソッドはフォルダを移動します。
CopyFolderメソッドはフォルダをコピーします。DeleteFolderメソッドはフォルダを削除します。
DeleteFolderメソッドの引数にFalseを指定すると、読み取り専用のフォルダは削除されません。
引数にTrueを指定すると、読み取り専用のフォルダも削除されます。
DeleteFolderメソッドの引数(削除するファイル名)と、MoveFileメソッドの引数(移動するファイル名)にはワイルドカードを使用できます。
サンプルは、「D:\Access\英語」フォルダを移動しています。移動先に同名フォルダが存在する場合はエラーが発生するため、移動前に同名フォルダを削除しています。
また、「D:\Access\仏語」フォルダを別のフォルダにコピーしています。


● サンプル ●

'フォルダを移動(コピー)する(FileSystemオブジェクト)
'   [ツール]→[参照設定]で「Microsoft Scripting Runtime」をチェック
Sub Sample()
    Dim myFileSystem As New Scripting.FileSystemObject
    '移動先の同名フォルダを削除しておく
    On Error Resume Next
    myFileSystem.DeleteFolder "D:\Access\仏語"
    'フォルダを移動する
    On Error GoTo ErrHandler
    myFileSystem.MoveFolder "D:\Access\英語", "D:\Access\仏語"
    'フォルダをコピーする(上書き可)
    myFileSystem.CopyFolder "D:\Access\仏語", "D:\AccessVBA\仏語", True
Exit Sub
ErrHandler:
    MsgBox Err.Description
End Sub


● 補足 ●
FileSystemObjectオブジェクトは利用する前に参照設定を行う必要があります。
参照設定は、[ツール]メニューから[参照設定]コマンドを選択して[参照設定]ダイアログボックスを表示します。
ダイアログボックスが表示されたら、一覧から「Microsoft Scripting Runtime」をチェックして[OK]ボタンをクリックします。