経緯
Excelファイルのバックアップを取りたいと思い、
できないか、
今回勉強しました。
タスクスケジューラとVBA(Visual Basic for Applications)を使う
手順を書きます。
- VBAを使ってExcelを保存するマクロを作成。
- VBAマクロを実行するバッチファイルをつくる
- タスクスケジューラを使ってマクロを定期的に実行
1,VBAを使ってExcelを保存するマクロを作成。
まず、VBAを作ります。以下がコードです。
Sub SaveBackup()
Dim filePath As String
' バックアップファイルのパスを指定します。以下は例です。
filePath = "C:\Backups\Backup_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
' ファイルを新しい名前で保存します。
ThisWorkbook.SaveAs filePath
End Sub
こんな感じです。ファイル名は”日付と時間”で保存されます。
filePathの変数の””内には実行するマクロファイルのバスが入ります。
2,VBAマクロを実行するバッチファイルをつくる
メモ帳を開きます。以下のコードを書いてください。
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\path\to\your\workbook.xlsm")
objExcel.Run "SaveBackup"
objWorkbook.Close
objExcel.Quit
2行目の(“”)の中は上で作ったVBAが入っているファイルのパスになります。
これを「SaveBackup.vbs」という名前で保存します。エンコードは”ANSI”で保存してください。文字化けして”UTF-8″だとうまくいきません。
3,タスクスケジューラを使ってマクロを定期的に実行
タスクスケジューラを開いて、右にある”タスクの作成”をクリック。
”全般”を選んで、名前(M):を書きます。私は「バックアップ取得」としました。
次に”トリガー”を選択します。左下に”新規”とあるので、クリック。すると”新しいトリガー”とでてくるので、適当に設定を行っていください。
設定が終わったら、”OK”を押します。
次に”操作”を選んで、左下の”新規”をクリック。すると、”操作の編集”と出てきます。
”プログラム/スクリプト(P):”のテキストボックスに”cscript.exe”と記入してください。
次に”引数の追加(オプション)(A):”の右のテキストボックスに上で作った「SaveBackup.vbs」のパスを入れてください。
OKクリック。
これで終わりです。
試しにタスクスケジューラの右の真ん中あたりに”実行”とあるので、クリックしてみてください。
うまくいっているかどうかわかります。
参考になれば、幸いです。
ここまで読んでいただきありがとうございました。