[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『バックアップ』(かかし)1フォルダと2フォルダがあります。1フォルダの内容を2フォルダに現時点までの内容を各ファイルにコピー(バックアップ)するVBAはできませんか?
方法は、いくつもありますが、OSのファイル管理にアクセスするなら、FSO(File System Object) を覚えるの簡単で便利です。遅いことを我慢すれば・・・。
標準モジュールに '============================================================ Sub main() Dim f1, f2 f1 = get_folder_path("コピー元フォルダを指定して下さい") f2 = get_folder_path("コピー先フォルダを指定して下さい") If TypeName(f1) <> "Boolean" And TypeName(f2) <> "Boolean" Then With CreateObject("scripting.filesystemobject") .CopyFolder f1, f2, True End With End If End Sub Function get_folder_path(ByVal mes As Variant) As Variant Dim fld As Object Set fld = CreateObject("Shell.Application").BrowseForFolder(0, mes, 1, 17) On Error Resume Next If Not fld Is Nothing Then get_folder_path = fld.items.Item.Path If Err.Number <> 0 Then get_folder_path = False End If Else get_folder_path = False End If End Function
として、mainを実行してみてください。コピー元とコピー先のフォルダを指定してください。 これらが正しく指定されると、コピーを開始します ichinose
タスクスケジューラで、バッチを指定すればよいのでは?
バッチの中身は、 Xcopy /S /D /C "C:\1フォルダ\*.*" "C:\2フォルダ\" でよいと思いますが。 (Mook)
タスクスケジューラは、プログラムを予定した時刻に実行する機能です。 http://support.microsoft.com/kb/178706/ja
バッチは、ただのテキストファイルですが、書かれたコマンドを順番に実行します。 Backup.bat というファイルを作り、上記を書きます(フォルダのパスは修正)。
そのファイルをダブルクリックするだけでも、実行できます。 タスクスケジューラで、バッチを指定すれば完了です。
どちらも、EXCEL とは無関係ですので、どうしても EXCELでということでしたら、 読み飛ばしてください。 (Mook)
タスクスケジューラーの使用は、同感ですが、以下のコードを
With CreateObject("scripting.filesystemobject") .CopyFolder "d:\フォルダ1","D:\フォルダ2" , True End With
vbsという拡張子で保存したスクリプトをタスクスケジューラーに登録でも可能です。
ichinose
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.