【VBAスタンダード対策】FileCopy ステートメントによるファイルのコピー処理を攻略!
VBAで既存のファイルを別の場所や別のファイル名で複製(コピー)する際に使用する FileCopy ステートメント。引数の指定順序や指定方法の記述ルールを正確にマスターしましょう。
1. 問題:FileCopy ステートメントによるファイル複製処理
【 問題 】 C:\Data\Sales.xlsx というファイルを、C:\Backup\Sales_backup.xlsx としてコピー(複製)したい。空欄 ( A ) に入る正しい記述はどれでしょうか?
Sub CopyFileTest()
Dim srcPath As String
Dim destPath As String
srcPath = "C:\Data\Sales.xlsx"
destPath = "C:\Backup\Sales_backup.xlsx"
( A )
End Sub
Dim srcPath As String
Dim destPath As String
srcPath = "C:\Data\Sales.xlsx"
destPath = "C:\Backup\Sales_backup.xlsx"
( A )
End Sub
① FileCopy destPath, srcPath
② FileCopy srcPath, destPath
③ FileCopy(srcPath To destPath)
④ Application.FileCopy srcPath, destPath
2. 正解:FileCopy ステートメントの記述に関する正解
正解: ② FileCopy srcPath, destPath
3. 解説:FileCopy ステートメントの構文と重要な注意点
外部ファイルをVBAから直接コピーするには FileCopy ステートメント を使用します。
[ FileCopy の構文構造と注意ルール ]
構文:FileCopy コピー元ファイルパス , コピー先ファイルパス
1. 引数の指定順序:
・第1引数:コピー元のファイルパス(
・第2引数:コピー先のファイルパス(
※①のようにコピー先とコピー元を逆にして指定すると、意図しない上書きエラー等が発生します。
2. 記述のルール(ステートメント):
3. 実務上の超重要注意点(開いているファイルの扱い):
構文:FileCopy コピー元ファイルパス , コピー先ファイルパス
1. 引数の指定順序:
・第1引数:コピー元のファイルパス(
srcPath)・第2引数:コピー先のファイルパス(
destPath)※①のようにコピー先とコピー元を逆にして指定すると、意図しない上書きエラー等が発生します。
2. 記述のルール(ステートメント):
FileCopy は関数(Function)ではなくステートメント(命令文)のため、③のようにカッコ ( ) で囲んだり To キーワードを使ったりする記述は構文エラーとなります。3. 実務上の超重要注意点(開いているファイルの扱い):
FileCopy でコピーしようとするコピー元ファイルがExcel等で開かれている場合、実行時エラー(「アクセス拒否」や「ファイルが開かれています」)が発生します。必ずファイルを閉じた状態で実行する必要があります。ここが試験に出る!: スタンダード試験では、FileCopy の引数の順番(コピー元 → コピー先)を問う問題や、同じファイル操作命令である Name ステートメント(ファイル名の変更・移動)との役割の違いについての問題がよく出題されます。
4. まとめ
「ファイルのコピーは FileCopy コピー元, コピー先 」。このステートメントを押さえておけば、日次処理の前にマスターファイルのバックアップを自動作成するような実務マクロも安全に構築できるようになります。
PR