エクセルシートの履歴を自動管理する(超簡易版)

エクセルファイルのバージョン管理をするために、

  • 新しく作ったファイルを「別名で保存する」
  • 元々あるファイル名を変更する

のどちらかで対応するケースは多いと思います。

ただ、いちいち別名で保存するのは面倒ですし、「別名保存」「ファイル名変更」をし忘れると大変です。

そこで、自動的に履歴を記録するVBAマクロを作りました。

ただし、かなり、簡易的な作りですので、あまり実用的ではありません。たたき台としてお使いください。

この記事の目次


ソースコード

次のソースコードを「ThisWorkbookモジュール」に貼り付けてください。

Const HISTORYDIR_RELATIVE = ".history"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If ThisWorkbook.Path <> "" Then
    Call Backup
  End If
End Sub

Private Sub Backup()
  Dim DateString As String
  DateString = Format(Now, "yyyymmddhhmmss")
    
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
   
  Dim HistoryDir As String
  HistoryDir = ThisWorkbook.Path & "¥" & HISTORYDIR_RELATIVE
   
  Dim FileName As String
  FileName = HistoryDir & "¥" & _
             FSO.GetBaseName(ThisWorkbook.Name) & "_" & DateString & _
             "." & FSO.GetExtensionName(ThisWorkbook.Name)
  
  If Dir(HistoryDir, vbDirectory) = "" Then
    MkDir HistoryDir
  End If
  
  FSO.CopyFile ThisWorkbook.FullName, FileName
End Sub

使い方

通常の「保存」操作をするだけです。

自動的に、

  • 保存前のファイルが
  • 「元のファイル名_YYYYMMDDHHMMSS.元の拡張子」というファイル名で
  • 元々のブックがあるフォルダの「.history」フォルダに

保存されます。

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。