Excelファイルが開かれた回数をカウントする方法【マクロで自動集計】

目次

はじめに

社内で共有されているExcelファイルが、どれくらい閲覧されているのかを把握したいと思ったことはございませんか?
たとえば、プロフィール情報のような「形だけ作って誰も見ていない」ファイルが、実際にどれだけ開かれているのかを知ることができれば、運用の見直しにも役立ちます。

今回は、Excelマクロ(VBA)を使って、ブックが開かれた回数を自動でこっそりカウントする方法をご紹介いたします。特に、シートを非表示にしてユーザーに気づかれずに記録する方法に焦点を当てて解説いたします。


本記事の目的

  • Excelファイルが開かれた回数を自動で記録したい
  • ユーザーにカウンターが見えないようにしたい
  • ワークシート関数ではなく、VBA(マクロ)で実現したい
  • 最低限の設定で完結する方法を知りたい

このような目的をお持ちの方に最適な内容となっております。


使う技術:Excelマクロ(VBA)+VeryHiddenシート

今回ご紹介する方法では、ブックを開くたびに、隠しシートに記録されている「開いた回数(カウント)」を1つずつ増やしていきます。その隠しシートはExcelの通常操作では表示できない「VeryHidden」状態に設定されているため、ユーザーに気づかれることは基本的にありません。


実装手順

1. 「ThisWorkbook」モジュールを開く

  1. Excelファイルを開きます。
  2. Alt + F11VBE(Visual Basic Editor) を起動します。
  3. 左側の「Microsoft Excel Objects」内にある ThisWorkbook をダブルクリックします。

2. 以下のコードを貼り付ける

' ThisWorkbook モジュール
Option Explicit

Private Sub Workbook_Open()
    Const SHEET_NAME As String = "_Counter"  ' 非表示用シート名
    Const CELL_ADDR As String  = "A1"        ' カウンター格納セル
    
    Dim ws As Worksheet
    Dim cnt As Long
    
    Application.EnableEvents = False
    
    ' シートが無い場合は追加して VeryHidden に設定
    On Error Resume Next
    Set ws = ThisWorkbook.Worksheets(SHEET_NAME)
    On Error GoTo 0
    
    If ws Is Nothing Then
        Set ws = ThisWorkbook.Worksheets.Add(After:=Sheets(Sheets.Count))
        ws.Name = SHEET_NAME
        ws.Visible = xlSheetVeryHidden
    End If
    
    ' 現在値を読み取り(数値でなければ 0 扱い)
    If IsNumeric(ws.Range(CELL_ADDR).Value) Then
        cnt = CLng(ws.Range(CELL_ADDR).Value)
    Else
        cnt = 0
    End If
    
    ' インクリメントして書き戻し
    cnt = cnt + 1
    ws.Range(CELL_ADDR).Value = cnt
    
    ' 値を確実に保存
    ThisWorkbook.Save
    
    Application.EnableEvents = True
End Sub

仕組みの説明

このコードは、Excelファイルを開いた瞬間に実行されます。

  • _Counter という名前のシートが存在しない場合は、自動的に新規作成します。
  • そのシートにあるセル A1 に記録された回数(数値)を読み込み、+1 して上書きします。
  • シートは VeryHidden に設定されているため、通常の「再表示」操作では表示できません。
  • 最後に ThisWorkbook.Save を実行して、回数が保存されるようになっています。

カウント値を確認するには?

カウントを保存している _Counter シートは「非常に非表示」状態になっています。
再表示するには、以下の手順を実行してください。

VBEからの表示手順

  1. Alt + F11 で VBE を開きます。
  2. 左側の「Microsoft Excel Objects」や「シート一覧」から _Counter を選択します。
  3. F4 を押して「プロパティ」ウィンドウを開きます。
  4. Visible プロパティを -1 - xlSheetVisible に変更すると、シートが再表示されます。

注意点

  • ファイル形式は .xlsm(マクロ有効ブック) として保存してください。
  • 初回のみ、マクロ実行の許可を求められることがあります。信頼された場所に保存すれば通知は抑制可能です。
  • カウントを完全に隠したい場合は、他のユーザーがVBAを編集・確認できないよう、VBAプロジェクトにパスワード保護をかけておくと安心です。

まとめ

本記事では、Excelファイルを開いた回数を自動で記録するマクロの実装方法をご紹介いたしました。VeryHidden シートを活用することで、ユーザーに気づかれずにアクセス数をログとして残すことが可能になります。

「誰が、いつ、どれだけそのファイルを開いているか」を把握したいというニーズは、業務の見直しや証拠資料の収集において非常に有効です。ぜひ一度、今回の方法をご活用いただき、実際の活用状況を可視化してみてはいかがでしょうか。

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

この記事を書いた人

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

目次