Quantcast
Channel: t-hom’s diary
Viewing all articles
Browse latest Browse all 493

VBA 開発中マクロブックのバックアップを取るマクロ

$
0
0

開発中のマクロで、こまめに保存しておきたいケースがあったのでコードを書いてみた。
これは開発中のブックに埋め込んで利用する前提。私は標準モジュール「DevTools」に保存して使っている。

Sub BackupFile()'Microsoft Scripting Runtimeへの参照設定が必要Dim fso As FileSystemObject: Set fso =New FileSystemObject
    With ThisWorkbook
        Dim f As File: Set f = fso.GetFile(.FullName)Dim backupFolderPath AsString: backupFolderPath _=.Path &"\backup_"&Left(f.Name,Len(f.Name)-Len(fso.GetExtensionName(f.Path))-1)IfNot fso.FolderExists(backupFolderPath)Then fso.CreateFolder backupFolderPath
        .SaveCopyAs backupFolderPath &"\"&Format(Now,"yyyymmddhhMMss")&"_"&.NameEndWithEndSub

実行すると、そのブックと同じパスにbackup_[ブック名(拡張子除く)]というフォルダーが作成され、編集中のブックのコピーが保存される。

ファイル名は秒単位なので1秒に複数回実行すると古いコピーが上書きされてしまうことに注意。
(そんな頻度で実行するシチュエーションは無いと思うが)

いつもなら少し大掛かりなマクロではGitHubを使ってバージョン管理するんだけど、今回はブック本体に公開できない情報を含むので、ファイルのコピーを残すという原始的なバックアップに頼ることにした。

このくらいのコードならTwitterに投稿しようとしたら文字数限界だったので記事にした次第。


Viewing all articles
Browse latest Browse all 493

Trending Articles