はじめに
社内で共有されているExcelファイルが、どれくらい閲覧されているのかを把握したいと思ったことはございませんか?
たとえば、プロフィール情報のような「形だけ作って誰も見ていない」ファイルが、実際にどれだけ開かれているのかを知ることができれば、運用の見直しにも役立ちます。
今回は、Excelマクロ(VBA)を使って、ブックが開かれた回数を自動でこっそりカウントする方法をご紹介いたします。特に、シートを非表示にしてユーザーに気づかれずに記録する方法に焦点を当てて解説いたします。
本記事の目的
- Excelファイルが開かれた回数を自動で記録したい
- ユーザーにカウンターが見えないようにしたい
- ワークシート関数ではなく、VBA(マクロ)で実現したい
- 最低限の設定で完結する方法を知りたい
このような目的をお持ちの方に最適な内容となっております。
使う技術:Excelマクロ(VBA)+VeryHiddenシート
今回ご紹介する方法では、ブックを開くたびに、隠しシートに記録されている「開いた回数(カウント)」を1つずつ増やしていきます。その隠しシートはExcelの通常操作では表示できない「VeryHidden」状態に設定されているため、ユーザーに気づかれることは基本的にありません。
実装手順
1. 「ThisWorkbook」モジュールを開く
- Excelファイルを開きます。
Alt + F11で VBE(Visual Basic Editor) を起動します。- 左側の「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からの表示手順
Alt + F11で VBE を開きます。- 左側の「Microsoft Excel Objects」や「シート一覧」から
_Counterを選択します。 F4を押して「プロパティ」ウィンドウを開きます。Visibleプロパティを-1 - xlSheetVisibleに変更すると、シートが再表示されます。
注意点
- ファイル形式は .xlsm(マクロ有効ブック) として保存してください。
- 初回のみ、マクロ実行の許可を求められることがあります。信頼された場所に保存すれば通知は抑制可能です。
- カウントを完全に隠したい場合は、他のユーザーがVBAを編集・確認できないよう、VBAプロジェクトにパスワード保護をかけておくと安心です。
まとめ
本記事では、Excelファイルを開いた回数を自動で記録するマクロの実装方法をご紹介いたしました。VeryHidden シートを活用することで、ユーザーに気づかれずにアクセス数をログとして残すことが可能になります。
「誰が、いつ、どれだけそのファイルを開いているか」を把握したいというニーズは、業務の見直しや証拠資料の収集において非常に有効です。ぜひ一度、今回の方法をご活用いただき、実際の活用状況を可視化してみてはいかがでしょうか。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
