CopyFileメソッドはファイルを別の場所にコピーします。
※ファイルシステムオブジェクト(FileSystemObject)についてはこちら
CopyFileメソッドの構文
構文
ファイルシステムオブジェクト.CopyFile コピーするファイル(Source),コピー先のパス(Destination),上書き設定(Overwrite)
CopyFileメソッドの構成要素と引数
構成要素と引数
要素/引数 | 必須/任意 | 説明 |
---|---|---|
ファイルシステムオブジェクト (FSO) |
必須 | ファイルシステムオブジェクトを指定します。 |
パス (Path) |
必須 | 結合するパスを文字列を指定します。実在するものでなくても指定可能です。 |
コピーするファイル (Source) |
必須 | コピーするファイルをパスで指定します。 ワイルドカード文字も使用できます。 |
コピー先のパス (Destination) |
必須 | コピーする先をパスで指定します。 ワイルドカード文字は使用できません。 |
上書き設定 (Overwrite) |
任意 | コピー先の既存ファイルを上書きするかを指定します。 True:上書きする(初期値) False:上書きしない ※コピー先のファイルが読み取り専用だった場合はCopyFileメソッドは上書き設定にかかわらず失敗します。 |
その他のポイント
コピー先のパス(Destination)が存在しないときは、エラーが発生します。
コピー先のパス(Destination)が既に存在するファイルの場合に、上書き設定(Overwrite)がFalseを指定した場合はエラーが発生します。
コピー先のパス(Destination)がフォルダの場合はエラーが発生します。
コピーするファイル(Source)でワイルドカード文字が使用できるのは指定したパスの最後の文字列だけです。
コピーするファイル(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
実行結果
C:\Users\ユーザー名\Desktop\Testに保存されているすべてのテキストファイル(.txt)を、C:\Users\ユーザー名\Desktop\Testのサンプルフォルダ1の中にコピーします。
※コピー先に既に同じ名前のファイルがある場合は上書きをします。
ファイルをコピーするメソッドだね。
オンラインスクールで現役エンジニアのサポートがあるテックアカデミーがおすすめ。
スキマ時間に学べて仕事も保証。必ず副業、始められます。まずは無料でプログラミング体験
コダマのもりブログはにほんブログ村に登録しています。
ブログの記事が役に立ったと感じて頂けたら、フォローお願いいたします。
コメント