EXCEL VBA ファイルのコピー・ファイルのバックアップ・ファイルの複写・参照(ファイルの操作)

 

 

EXCEL VBA ファイルのコピー・ファイルのバックアップ・ファイルの複写・参照(ファイルの操作)「FileCopyステートメント」

 

 

 ●はじめに
社内で色々なファイルを取り扱う事があると思いますが、その中には重要なファイルが多くあると思います。データの紛失や誤って重要なデータを上書き保存などを行ってしまうと、業務に支障をきたす事になります。それを防ぐには、定期的にデータをバックアップする必要があります。ここでは、EXCEL VBAを利用してファイルのコピー(バックアップ)の利用方法をサンプルプログラムを交えて説明いたします。

 

 

 ●書式の説明  「FileCopyステートメント」

● FileCopy Source, Destination
                    コピー元 コピー先

●『使用例』 FileCopy ”C:\DATA\Sample.xlsx”,”C:\DATA\Bk_Sample.xlsx”,

これから説明しますサンプルプログラム④・⑤は、「FileSystemObject」を使いファイル名やフルパス情報など取得する際に利用していますので、必ず下記のFileSystemObjectの設定方法(参照設定)を行って下さい。

 

 

 ●FileSystemObjectの設定方法(参照設定)

●【FileSystemObject】とは、さまざまなファイルやフォルダー情報を調べたり、ファイルやフォルダーをVBAプログラムで操作する時に、FileSystemObjectを利用して簡単に情報取得や操作を行う事が出来ます。これから説明するプログラムにも利用していますので、必ず下記の通りに設定して下さい。

●FileSystemObjectを利用するための参照設定

【設定方法】
①VBE(Visual Basic Editor)から【ツール】を選択する
②【参照設定】をクリックする
③【参照設定ーVBAProject】の中から「Microsoft Scripting Runtime」にチェックする
④【OK】ボタンをクリックして設定します。

 

 

 

指定したファイルをコピーする(バックアップ)

 

 

 ●プログラム説明 (サンプル①) 「FileCopyステートメント」

下記のサンプルプログラムは、指定したファイルをコピーします。

●ファイルのコピー元 : C:\DATA¥Master1.xlsx
●ファイルのコピー先 : C:¥DATA¥BK_Master1.xlsx     (新規作成)

★ファイルのコピー先が、既に作成されている場合は、上書き保存されます。

 

 

 

●実行前~実行後 ※プログラム実行後、指定したファイル・フォルダーに、ファイルがコピーされました。(バックアップファイルが作成)
(画面クリックして拡大)

 

 

指定するファイルをコピーする際に、フォルダーを作成してコピーする。

 

 

 ●プログラム説明 (サンプル②) 「FileCopyステートメント」

下記のサンプルプログラムは、指定したファイルをコピーしますが、コピー先にフォルダーを作成してファイルをコピーします。ただし、既に、フォルダーが作成されている場合は、フォルダーは、作成しません。


●ファイルのコピー元 : C:\DATA¥Master1.xlsx
●ファイルのコピー先 : C:¥DATA¥BACKUP\BK_Master1.xlsx
バックアップアップ先のフォルダー「BACKUP」を作成します。(新規作成)

 

 

 

 ●実行前~実行後 ※プログラム実行後、「BACKUPフォルダー」が無ければ、フォルダーが作成されて、そのフォルダー内にファイルがコピーされました。
(画面クリックして拡大)

 

 

指定するファイルをコピーする際に、上書きするか確認する

 

 

 ●プログラム説明 (サンプル③) 「FileCopyステートメント」

下記のサンプルプログラムは、サンプル②の応用になります。サンプル②同様に指定したファイルをコピーするプログラムになりますが、その際に【BACKUP】フォルダーを確認してフォルダダーが無ければ作成し、更にコピー先にファイルが作成されていれば、上書きを行うか確認するサンプルプログラムです。

【下記のプログラムを実行する場合】●FileSystemObjectの設定方法(参照設定:上記)を設定して下さい

【処理条件①】フォルダーを確認します【BACKUP:フォルダー】
●ファイルのコピー元 : C:\DATA¥Master1.xlsx
●ファイルのコピー先 : C:¥DATA¥BACKUP\BK_Master1.xlsx
バックアップアップ先のフォルダー「BACKUP」を作成します。(新規作成)

【処理条件②】ファイルを確認します。【BK_Master1.xlsx:ファイル 
●ファイルのコピー元 : C:\DATA¥Master1.xlsx
●ファイルのコピー先 : C:¥DATA¥BACKUP\BK_Master1.xlsx 
バックアップアップ先のフォルダー「BACKUP」を作成します。(新規作成)

 

 

 

 

  ●実行前~実行後  ※プログラム実行後、サンプルプログラム②同様に、フォルダーが作成されその中に、ファイルがコピーされます。今回は、2回目に実行した時に作成されているファイルに対して、上書き保存するかの確認メッセージが表示されます。「はい」を選択する事で上書き保存されます。「いいえ」を選択した場合は、何も処理されません。
(画面クリックして拡大)

 

 

複数選択したファイルをバックアップフォルダーにファイルコピーする。

 

 

 ●プログラム説明 (サンプル④) 「FileCopyステートメント」

下記のサンプルプログラムは、複数ファイルを選択いてコピーするサンプルプログラムです。まず、ダイアログボックスが表示されて、コピーしたいファイルを選択します。コピー先に、バックアップ用フォルダーを作成して、そこに選択したファイルをコピー(バックアップ)します。ファイルを一つずつ選択してコピーが行えるので、必要なファイルのみ選択してコピー(バックアップ)する事が出来ます。

【下記のプログラムを実行する場合】●FileSystemObjectの設定方法(参照設定:上記)を設定して下さい

 

【処理手順①】
●ダイアログボックスが表示されて、コピーするファイルを選択します。

【処理手順②】
●選択したファイルのフォルダー内に「BACKUP」フォルダーを作成します。
・フォルダー内に「BACKUP」フォルダーが無い場合は新規にフォルダーを作成します。
・フォルダー内に「BACKUP」フォルダーが有る場合は、そのまま何もしません。

【処理手順③】
●選択したファイルが「BACKUP」フォルダーにコピー(バックアップ)されます。
※(既に同じファイル名のファイルが有る場合は、上書きされます。)

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、ダイアログボックスが表示されて、コピーするファイルを選択します。その選択したファイルがBACKUPフォルダーにコピーされました。
(画面クリックして拡大)

 

 

複数選択したフォルダーをバックアップフォルダーに全ファイルコピーする。

 

 

 ●プログラム説明 (サンプル⑤) 「FileCopyステートメント」

下記のサンプルプログラムは、フォルダーを選択してフォルダー内の全てのファイルをコピー先のBACKUPフォルダーへコピーするサンプルプログラムです。まず、ダイアログボックスが表示されて、丸ごとファイルをコピーしたいフォルダーを選択します。コピー先に、バックアップ用フォルダーを作成して、そこに選択したフォルダーごとファイルがコピー(バックアップ)されます。フォルダー内に大量のファイルが有る場合に、一気にコピー(バックアップ)する事が出来ます。

【下記のプログラムを実行する場合】●FileSystemObjectの設定方法(参照設定:上記)を設定して下さい

 

【処理手順①】
●ダイアログボックスが表示されて、コピーするフォルダー内を選択します。
※(フォルダー内のファイルは、全てコピーされます。)

【処理手順②】
●選択したフォルダー内に「BACKUP」フォルダーを新規作成します。
・フォルダー内に「BACKUP」フォルダーが無い場合は新規にフォルダーを作成します。
・フォルダー内に「BACKUP」フォルダーが有る場合は、そのまま何もしません。

【処理手順③】
●選択したフォルダー内のファイルが全て「BUAKUP」フォルダーにコピー(バックアップ)されます。
※(既に同じファイル名のファイルが有る場合は、上書きされます。)

 

 

 

 

 

  ●実行前~実行後 ※プログラム実行後、コピー(バックアップ)するフォルダーを選択します。選択したフォルダー内のファイルが新たに作成した「BACKUP」フォルダーにファイル全てがコピーされました。
(画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。