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