即効テクニック |
● 概要 ● 構文 Object.Move Destination Object.Copy Destination, OverWriteFiles 設定項目 内容 Object Fileオブジェクトを指定[省略不可] Destination ファイルの移動先(コピー先)を指定[省略不可] OverWriteFiles 既存ファイルの上書き可否をTrueまたはFalseで指定[省略可能] FileオブジェクトのMoveメソッドはファイルを移動します。Copyメソッドはファイルをコピーします。 Fileオブジェクトは、FileSystemObjectオブジェクトのGetFileメソッドにファイル名を指定して取得します。 引数にはワイルドカードは指定できません。 Copyメソッドの引数 にTrueを指定すると、コピー先に同名ファイルが存在した場合は上書きされます。引数 にFalseを指定すると、コピー先に同名ファイルが存在した場合はコピーされません。 引数 を省略すると、Trueを指定したことになります。 サンプルは、「D:\AccessVBA」フォルダの「FileA.txt」ファイルを、「FileB.txt」ファイルとしてコピー後、ファイル名を「FileC.txt」として移動しています。 移動先に同名のファイルが存在するとエラーが発生します。 ● サンプル ● 'ファイルを移動(コピー)する(Fileオブジェクト) ' [ツール]→[参照設定]で「Microsoft Scripting Runtime」をチェック Sub Sample() Dim myFileSystem As New Scripting.FileSystemObject Dim myFile As Scripting.File On Error GoTo ErrHandler Set myFile = myFileSystem.GetFile("D:\AccessVBA\FileA.txt") 'ファイルをコピーする(上書き不可) myFile.Copy "D:\AccessVBA\FileB.txt", False 'ファイルを移動する myFile.Move "D:\AccessVBA\FileC.txt" Exit Sub ErrHandler: MsgBox Err.Description End Sub ● 補足1 ● Fileオブジェクトを利用してファイルを削除するにはDeleteメソッドを使います。 Moveメソッド、Copyメソッド、DeleteメソッドはFileSystemObjectオブジェクトのMoveFileメソッド、CopyFileメソッド、DeleteFileメソッドと同じ働きをします。 FileSystemObjectオブジェクトの各メソッドでは、ワイルドカードを利用して複数のファイルを操作できます。 ● 補足2 ● FileSystemObjectオブジェクトは利用する前に参照設定を行う必要があります。 参照設定は、[ツール]メニューから[参照設定]コマンドを選択して、[参照設定]ダイアログボックスを表示します。ダイアログボックスが表示されたら、一覧から「Microsoft Scripting Runtime」をチェックして[OK]ボタンをクリックします。