【VBA】フォルダーをコピー(CopyFolder)

投稿者: | 2023年3月19日
excelアイコン

FileSystemObjectのCopyFolderメソッドについてです。

CopyFolderメソッド

概要

フォルダーをコピーすることができます。

構文

FileSystemObject.CopyFolder source , destination [overwrite]

[ ]は省略可という意味

CopyFolderメソッドの引数

引 数必須 / 省略可説 明

コピー元フォルダー
(CopyFolder source)

必須・コピー元のフォルダーパスを指定。
・ワイルドカードで複数コピー可。
(コピー元のフォルダーがない場合はエラー
コピー先フォルダー
(destination)
必須・コピー先のフォルダーパスを指定。
・ワイルドカード不可。
(コピー先のフォルダーがない場合はエラー
上書き
(overwrite)
省略可

・既存のフォルダーを上書きするかブール値で指定。
True  :上書き(既定値)
False :上書きしない

 

VBAサンプル

通常コピー

コピー先フォルダーに、コピー元のフォルダーが存在しない場合のコピー(True,FalseどちらでもOK)

 

上書きコピー

コピー先フォルダーに、コピー元のフォルダーが存在する場合、上書きコピー。
(True指定)

False指定(上書きしない)した場合はエラーがでます。

 

全てのサブフォルダーをコピー(ワイルドカード①)

全てのサブフォルダをワイルドカードで指定して、コピー先フォルダーにコピー。

 

複数の指定したフォルダーをコピー(ワイルドカード②)

サブフォルダーの*folder*ワイルドカード)が含まれる複数フォルダを、コピー先フォルダーにコピー。

 

フォルダーコピーのエラー例

コピー元フォルダーが存在しない場合のエラー

コピー元のフォルダー(Folder10)が存在しない場合のエラー
(パスが見つかりません)。

コピー元フォルダー(Folder10)がないためエラーがでます。

err_copyFolderパスが見つかりません

 

コピー先フォルダーが存在しない場合のエラー

コピー先のフォルダー(Folder20)が存在しない場合のエラー
(パスが見つかりません)。

コピー先フォルダー(Folder20)がないためエラーがでます。

err_copyFolderパスが見つかりません

 

コピー先にコピー元のフォルダーが存在する場合のエラー

コピー先フォルダーに、コピー元のフォルダーが存在する場合、上書きコピーをしないのFalse指定した場合のエラー
(既に同名のファイルが存在しています)。

False指定で上書きができないためエラーがでます。
Trueの場合は上書きされるのでエラーは出ません)

エラーFalse指定1

 

コピー元のフォルダをコピー元の直下にコピー

コピー元のフォルダを、コピー元の直下にコピーはエラー
(プロシージャの呼び出し、または引数が不正です)。

ちなみに手動でコピぺも不可です。

err_プロシージャの呼び出し、または引数が不正です