こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA 複数のフォルダのコピー

Excel2003を使用しています。

毎月、一定の作業が完了したら、複数のフォルダをバックアップを兼ねてコピーしています。
(以下、仮に、コピーするフォルダを3つとし、フォルダ名をAAA、BBB、CCCとします。フォルダ内にはそれぞれ複数のファイルが保存されています。)

毎月の作業は、Fドライブに保存してあるフォルダで行い、その月の作業が完了したら、Dドライブ、Eドライブ、Gドライブへフォルダごとコピーしたく、それをマクロで処理することは可能でしょうか?
(数種類のメディアへコピーをとっておきたいのです)

よろしくお願いします。

投稿日時 - 2008-11-19 14:05:07

QNo.4491135

暇なときに回答ください

質問者が選んだベストアンサー

フォルダー単位での複写方法
http://officetanaka.net/excel/vba/filesystemobject/filesystemobject.htm#CopyFolder

若しくは
Visual Basic Editor の [ツール]-[参照設定] で、
"Microsoft Scripting Runtime" にチェックをして

Dim myFSO As New FileSystemObject
myFSO.CopyFolder "C:\AAA", "D:\AAA"

投稿日時 - 2008-11-19 14:15:11

お礼

お礼が遅くなり申し訳ありません。
記載していただいたURL、大変参考になりました。
おかげさまで、希望通りのものが完成しました。
ありがとうございました。

投稿日時 - 2008-11-26 13:54:41

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

[イミディエイト]
? FolderCopy( "c:\temp\*.csv", "d:\temp")
True

このように FileSystemObject を利用してフォルダ間コピーが可能です。

' ----------------------------------------------------------------
' FolderCopy( "c:\temp\*.csv", "d:\temp")
' ----------------------------------------------------------------
Public Function FolderCopy(ByVal F As String, _
              ByVal T As String) As Boolean
On Error GoTo Err_FolderCopy
  Dim isOK As Boolean
  
  isOK = True
  CreateObject("Scripting.FIleSystemObject").CopyFile F, T
Exit_FolderCopy:
  FolderCopy = isOK
  Exit Function
Err_FolderCopy:
  MsgBox Err.Description & "( FolderCopy)"
  isOK = False
  Resume Exit_FolderCopy
End Function

投稿日時 - 2008-11-19 15:12:34

お礼

お礼が遅くなり、申し訳ありません。
教えていただいたコード、参考にさせていただきます。
アドバイスありがとうございました。

投稿日時 - 2008-11-26 14:03:24

ANo.3

>毎月、一定の作業が完了したら、複数のフォルダをバックアップを兼ねてコピーしています。
わざわざエクセルを使用しなくても良くないですか?
1、MS-DOSのXcopyコマンドでバッチファイルを実行する。
http://sonic64.com/2006-04-13.html
参考にしてみてください。
更新されていないファイルをコピィしないなどあるので、動作は圧倒的に早いです。
ほか、Windowsのブリーフケースをメディアに作成してその中に一度コピィしておけば、次からはメディアを差し込むだけです。
今では、NAS(ネットワークで使用するハードディスク)もかなり安くなっています。数万円から
複数のパソコンから使えます(主たる目的ですが)ミラーリングとか機能がありますので、データの保守についてはこちらの方が強力だと思います。

投稿日時 - 2008-11-19 14:39:00

お礼

お礼が遅くなり、申し訳ありません。

>わざわざエクセルを使用しなくても良くないですか?

あるExcelファイルを開くことで、毎月の作業に使用しているフォルダを一気に複数のメディアへコピーできればと思い、Excelでと考えていました。

記載していただいたURL参考にさせていただきます。
アドバイスありがとうございました。

投稿日時 - 2008-11-26 14:01:52

ANo.2

Batファイルの作り方を知っているのであればBatファイルが簡単です。
EXCELのハイパーリンクから実行できると思います。

投稿日時 - 2008-11-19 14:32:07

お礼

お礼が遅くなり申し訳ありません。

>Batファイルの作り方を知っているのであればBatファイルが簡単です。

残念ながら、Batファイルの作り方を知りませんので、この機会に勉強してみます。
アドバイスありがとうございました。

投稿日時 - 2008-11-26 13:56:03

あなたにオススメの質問