この記事では、以下の画像に示しているように、あるファイルを指定した名前に一括コピーする方法をご紹介していきます。
作成したテンプレートファイルを大量コピーする際などにご活用ください。
それでは早速やっていきます!
VBA上でファイルをコピーする方法
まずは基本となる、VBA上でファイルをコピーする方法を簡単にご紹介します。
FileCopy A , B
A:コピーされるファイルのフルパス
B:コピー後のファイルのフルパス
この方法を活用し、あるファイルを大量にコピーしてみようと思います。
実際の使い方を見てみましょう。
指定ファイルを大量コピーするVBAコード
それでは冒頭に説明したようにあるファイルを大量コピーしていきましょう。
今回はA2セルに記入されているファイルを、A5セル以降に記入されているファイル名としてコピーしていこうと思います。
また、以下の画像のようにこれからコピーされるファイルとマクロを実行するファイルは同じ場所に保存されていることを想定してコードを書いています。
◆ファイルを一括コピーするVBAコード
Sub file_copy()
'変数の型宣言
Dim base_file_name As String
Dim after_file_name As String
Dim i As Integer
'コピーされるファイル名を記憶させる
base_file_name = Cells(2, 1)
i = 0
'コピー作業を繰り返す
Do Until Cells(5 + i, 1) = ""
after_file_name = Cells(5 + i, 1)
FileCopy ThisWorkbook.Path & "\" & base_file_name, ThisWorkbook.Path & "\" & after_file_name
i = i + 1
Loop
End Sub
このコードを実行すると、以下のようにセルに記入した名前のファイルが大量発生しているはずです。
おわりに
というわけで今回は指定したファイルを別ファイル名で大量コピーする方法をご紹介しました。
今回はエクセルファイルが対象でしたが、その他の形式でもコピーできますので、ぜひご活用ください。
さらに今回大量コピーしたファイルたちを別々のフォルダに振り分けていく、なんて作業も予定されてたりするのではないでしょうか?
そんなときに非常に便利なフォルダをまたぎながらファイルをコピーしていくマクロを以下でご紹介しています。
興味があればぜひこちらもご覧ください。
【エクセルVBA】エクセル上でデータ整理(コピー&フォルダ移動)するマクロ
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント
初めまして。毎回ファイル名または番号が不正ですというエラーが発生するため、お助け頂きたいです。デバッグを見るとFileCopy〜の構文のところになっているのですが、原因分かりますでしょうか?サンプルのファイルと同じ名前でテストしているのですが。。
ご質問ありがとうございます(^^)
マクロファイルもコピーするファイルと同じフォルダに置かれてますかね?
早速ありがとうございます(>_<)
同じフォルダに置いております!
ただ、フォルダというのがSharePointOnline内のフォルダを使用しておりまして、それが原因でしょうか…?通常のエクスプローラー内のフォルダで試したところ、ちゃんとマクロが実行され、無事にファイルが複製されました!
それが原因ですね。
ローカルでは無事に動いたようで良かったです(^^)