※本ブログのページには広告主との提携による広告や宣伝、プロモーションが含まれます。当ブログを経由しての商品の購入や、サービス申し込みが発生すると、それらの提携企業からの成果報酬を受けとる場合があります。

VBA|CopyFileメソッド(ファイルシステムオブジェクト)

CopyFileメソッドはファイルを別の場所にコピーします。

※ファイルシステムオブジェクト(FileSystemObject)についてはこちら

CopyFileメソッドの構文

ファイルシステムオブジェクト.CopyFile コピーするファイル(Source),コピー先のパス(Destination),上書き設定(Overwrite)

CopyFileメソッドの構成要素と引数

要素/引数 必須/任意 説明
ファイルシステムオブジェクト
(FSO)
必須 ファイルシステムオブジェクトを指定します。
パス
(Path)
必須 結合するパスを文字列を指定します。実在するものでなくても指定可能です。
コピーするファイル
(Source)
必須 コピーするファイルをパスで指定します。
ワイルドカード文字も使用できます。
コピー先のパス
(Destination)
必須 コピーする先をパスで指定します。
ワイルドカード文字は使用できません。
上書き設定
(Overwrite)
任意 コピー先の既存ファイルを上書きするかを指定します。
True:上書きする(初期値)
False:上書きしない
※コピー先のファイルが読み取り専用だった場合はCopyFileメソッドは上書き設定にかかわらず失敗します。

コピー先のパス(Destination)が存在しないときは、エラーが発生します。

コピー先のパス(Destination)が既に存在するファイルの場合に、上書き設定(Overwrite)がFalseを指定した場合はエラーが発生します。

コピー先のパス(Destination)がフォルダの場合はエラーが発生します。

コピーするファイル(Source)でワイルドカード文字が使用できるのは指定したパスの最後の文字列だけです。

OKな例:”C:\Users\ユーザー名\Desktop\Test*.txt”
NGな例:”C:\Users\ユーザー名\Desktop\*\*”

コピーするファイル(Source)にワイルドカード文字が使用されていて、どのファイルにも一致しなかったときはエラーが発生します。

エラーが発生した時点でCopyFileメソッドは停止しますが、それまでに実行された処理を戻せません。

CopyFileメソッドをつかったサンプルマクロ

以下のマクロは、引数(Source)に指定したパスにあるすべてのテキストファイル(.txt)を、引数(Destination)に指定したパスにコピーします。

引数(Destination)に指定したパスに既に同じ名前のファイルが存在する場合も処理を実行します。

Option Explicit

Sub ファイルシステムオブジェクト_CopyFileメソッド()

'ファイルシステムオブジェクトを使うため準備

'①事前バインディングの場合はVBEのツールより参照設定で「Microsoft Scripting Runtime」にチェックをしてください。
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject

'CopyFileメソッドの使用例
FSO.CopyFile "C:\Users\ユーザー名\Desktop\Test\*.txt", "C:\Users\ユーザー名\Desktop\Test\サンプルフォルダ1\", True

End Sub

※コピー先に既に同じ名前のファイルがある場合は上書きをします。

ファイルをコピーするメソッドだね。

PR

独学でプログラミングをはじめてみたけど、このままの学習方法に不安を感じているのなら、
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験

コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。

コメント

タイトルとURLをコピーしました