• ベストアンサー

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

Excel2003を使用しています。 毎月、一定の作業が完了したら、複数のフォルダをバックアップを兼ねてコピーしています。 (以下、仮に、コピーするフォルダを3つとし、フォルダ名をAAA、BBB、CCCとします。フォルダ内にはそれぞれ複数のファイルが保存されています。) 毎月の作業は、Fドライブに保存してあるフォルダで行い、その月の作業が完了したら、Dドライブ、Eドライブ、Gドライブへフォルダごとコピーしたく、それをマクロで処理することは可能でしょうか? (数種類のメディアへコピーをとっておきたいのです) よろしくお願いします。

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

  • ベストアンサー
  • noah7150
  • ベストアンサー率46% (116/251)
回答No.1

フォルダー単位での複写方法 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"

KOH3193
質問者

お礼

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

その他の回答 (3)

noname#140971
noname#140971
回答No.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

KOH3193
質問者

お礼

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

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

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

KOH3193
質問者

お礼

お礼が遅くなり、申し訳ありません。 >わざわざエクセルを使用しなくても良くないですか? あるExcelファイルを開くことで、毎月の作業に使用しているフォルダを一気に複数のメディアへコピーできればと思い、Excelでと考えていました。 記載していただいたURL参考にさせていただきます。 アドバイスありがとうございました。

回答No.2

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

KOH3193
質問者

お礼

お礼が遅くなり申し訳ありません。 >Batファイルの作り方を知っているのであればBatファイルが簡単です。 残念ながら、Batファイルの作り方を知りませんので、この機会に勉強してみます。 アドバイスありがとうございました。

関連するQ&A

専門家に質問してみよう