バックアップファイルを取りたい。【VBA】

目次

経緯

Excelファイルのバックアップを取りたいと思い、

できないか、

今回勉強しました。

タスクスケジューラとVBA(Visual Basic for Applications)を使う

手順を書きます。

  1. VBAを使ってExcelを保存するマクロを作成。
  2. VBAマクロを実行するバッチファイルをつくる
  3. タスクスケジューラを使ってマクロを定期的に実行

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クリック。

これで終わりです。

試しにタスクスケジューラの右の真ん中あたりに”実行”とあるので、クリックしてみてください。

うまくいっているかどうかわかります。

参考になれば、幸いです。

ここまで読んでいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次