CopyFolderメソッドはフォルダを別の場所にコピーします。
※ファイルシステムオブジェクト(FileSystemObject)についてはこちら
CopyFolderメソッドの構文
構文
ファイルシステムオブジェクト.CopyFolder コピーするフォルダ(Source),コピー先のパス(Destination),上書き設定(Overwrite)
CopyFolderメソッドの構成要素と引数
構成要素と引数
要素/引数 | 必須/任意 | 説明 |
---|---|---|
ファイルシステムオブジェクト (FSO) |
必須 | ファイルシステムオブジェクトを指定します。 |
パス (Path) |
必須 | 結合するパスを文字列を指定します。実在するものでなくても指定可能です。 |
コピーするフォルダ (Source) |
必須 | コピーするフォルダをパスで指定します。 ワイルドカード文字も使用できます。 |
コピー先のパス (Destination) |
必須 | コピーする先をパスで指定します。 ワイルドカード文字は使用できません。 |
上書き設定 (Overwrite) |
任意 | コピー先の既存フォルダを上書きするかを指定します。 True:上書きする(初期値) False:上書きしない |
その他のポイント
コピー先のパス(Destination)が存在しないときは、エラーが発生します。
コピー先のパス(Destination)に既存ファイルを指定した場合はエラーが発生します。
コピー先のパス(Destination)がフォルダの場合、コピーするフォルダ(Source)とその中に入っているファイルもコピーしようとしますが、このとき上書き設定(Overwrite)がFalseの場合はエラーが発生します。
コピー先のパス(Destination)が読み取り専用のフォルダで、上書き設定(Overwrite)がFalseの場合、既にある読み取り専用ファイルのコピーを実行するとエラーが発生します。
コピーするフォルダ(Source)にワイルドカード文字が指定されていて、どのフォルダとも一致しなかった場合はエラーが発生します。
コピーするファイル(Source)でワイルドカード文字が使用できるのは指定したパスの最後の文字列だけです。
エラーが発生した時点でCopyFolderメソッドは停止しますが、それまでに実行された処理を戻せません。
CopyFolderメソッドをつかったサンプルマクロ
以下のマクロは、引数(Source)に指定したフォルダに入っているすべてのサブフォルダとその中に含まれるファイルを引数(Destination)に指定したパスにコピーします。ただし、Sourceに指定したフォルダの直下にあるファイルはコピーの対象外です。
コピー先に既に同じ名前のフォルダがある場合も処理を実行します。
サンプルコード
Option Explicit
Sub ファイルシステムオブジェクト_CopyFolderメソッド()
'ファイルシステムオブジェクトを使うため準備
'①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject
'CopyFolderメソッドの使用例
FSO.CopyFolder "C:\Users\ユーザー名\Desktop\Test\サンプルフォルダ1\*", "C:\Users\ユーザー名\Desktop\Test\", True
End Sub
実行結果
FSO.CopyFolder “C:\Users\ユーザー名\Desktop\Test\サンプルフォルダ1″に保存されているサブフォルダとそれらの中に入っているファイルを”C:\Users\ユーザー名\Desktop”のTestフォルダにコピーします。
フォルダをコピーするメソッドだね。
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント