ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】ファイルコピーの方法を基本から徹底解説!面倒な作業を自動化!

f:id:yshgs_elec:20201007102108j:plain

仕事をしていると、作成&編集したデータファイルを、別のフォルダにコピーする、という作業は多いと思います。

 

そんなときわざわざマウスとキーボートを使って

①コピーしたファイルを【Ctrl + C】でコピー

②コピー先のフォルダを何度もクリックして開く

③目的のフォルダに【Ctrl + V】で張り付け

という非常に面倒な作業を行っている人は多いのではないでしょうか?

 

この記事ではそのような面倒な作業をVBAを使ってエクセル上で実行する方法についてご紹介します。

 

初心者向けに画像多めでご紹介していきますので、ぜひ最後までご覧ください。 

 

さっそくやっていきます!

 

はじめに

この記事では、あらかじめコピーされるファイルの保存場所、ファイル名があらかじめわかっている場合を想定しています。

あくまでも基礎的なスキル紹介記事ですので、あらかじめご了承ください。

 

VBA上でファイルをコピーする方法

 

FileCopy 【ファイルのフルパス】,【ファイルのフルパス】

 

 ここで一つ目の【ファイルのフルパス】が

 コピーされるファイルです。

そして二つ目の【ファイルのフルパス】が

 コピー後のファイルのフルパスです。

 

VBA上でこれらのフルパスを事前に取得しておき、最後にこのコードにあわはめていくだけです。

 

基本的な使い方がわかったところで、次は実際の使用例を見てみましょう。

 

実際の使用例

 実際のコードの記述に移る前に、まずはファイルのフルパスをエクセルシートに記入しておきましょう。

今回は以下のようにA列、F列にコピー前後のフォルダ、ファイル名を記入するようにしています。

f:id:yshgs_elec:20201007100613j:plain

 

また、これらのフォルダはマクロ実行前は以下のようになっています。

左がコピーさせるファイルが入っているフォルダ、

右がコピー後のファイルが入るはずのフォルダです。

f:id:yshgs_elec:20201007100745j:plain

 

VBA実行後は右側のフォルダにエクセルシートに記入された名前のファイルが生成されるはずです。

 

前置きはこの辺で、実際のVBAコードの記述に移っていきましょう。

 

以下が今回の状況で、ファイルをコピーする実行コードです。

 

Sub File_Copy_Macro()

Dim base_fol  As String
Dim base_file_name As String
Dim copy_fol As String
Dim copy_file_name As String

'コピー前のファイル宣言
base_fol = Cells(2, 1)
base_file_name = Cells(4, 1)

'コピー後のファイル宣言
copy_fol = Cells(2, 6)
copy_file_name = Cells(4, 6)

'コピーの実行
FileCopy base_fol & "\" & base_file_name, copy_fol & "\" & copy_file_name

End Sub

 

 長々と記述していますが、最後の行のFileCop・・・という部分以外はすべてエクセルシート上の情報をVBAに覚えさせているだけですので、難しいことは特にしていません。

 

そして最後の行をよく見ていただくと、前半部分で取得したフォルダのパスやファイル名を使って、

FileCopy  【ファイルのフルパス】, 【ファイルのフルパス】という形を作っているだけだということがわかると思います。

 

このようにファイルをコピーする、という作業自体はVBA上ではたったの1行で終わるんですね。

 

ちなみにコピーされるファイルと同じフォルダに別ファイル名としてコピーしたい場合は、F2セルをA2セルと全く同じものを記述しておけばOKです。

 

またこのスキルは、応用すれば一度に複数ファイルをコピーしたり、同じファイルをいろいろなフォルダにコピーしていくということも可能になります。

※そのへんの応用スキルについては今後このブログで紹介していこうと思います。気になる方はぜひブックマークしておいていただけると幸いです。

 

終わりに

 というわけで今回はVBA上でファイルをコピーする方法についてご紹介しました。

ぜひ少しずつスキルアップし、日々の業務を効率化していきましょう。

 

このように、このブログでは、エクセル(VBA)を中心に、様々な業務効率化スキルを紹介しています。

■業務の生産性を上げたい。

■早く帰って子供と遊びたい。

こんな人はぜひ他の記事も読んでみてください。

 

また、VBAを使ってこんなことがしたいんだけど、やり方がわからない、という悩みを抱えているかたは、お気軽にコメント欄から質問してください。

私にわかる範囲であればご協力いたしますので。(もちろん無料です。)

 

最後に・・・

このブログを応援してあげても良いよ、という方は以下のボタンをポチっていただけると嬉しいです。

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村

 

Twitterもやっていますので、興味があれば覗いてみてください。

それではまた!!

 

 オススメ記事

www.higashisalary.com