Excelで数式を使ってセルの変更を追跡する方法(簡単な手順を解説)
Microsoft Excelでは、ワークシート内のどのセルが変更されたかを把握したい場面が多くあります。実は、Excelの数式を活用すれば、セルの変更履歴を簡単かつスピーディーに追跡できます。この記事では、数式を使ってExcelでセルの変更を追跡する方法を、ステップバイステップでわかりやすく解説します。
練習用ワークブックは、記事末尾のリンクからダウンロードできます。
CELL関数を使ってセルの変更を追跡する3つのステップ
大規模なワークシートを扱っていると、「最後に編集したセルがどこだったのか分からなくなった」という経験はありませんか?また、複数人でファイルを共有している場合、他のユーザーが直近でどのセルを変更したのかを確認したいこともあるでしょう。そんなときに便利なのが、ExcelのCELL関数です。
ここでは、従業員の勤務時間と日給が記録されたデータセットを例に説明します。このデータの一部を変更し、その変更を追跡してみましょう。以下の手順に従ってください。

ステップ01:セル番地を追跡する数式を作成する
- まず、最後に変更されたセル番地を表示するセルを選択します。ここではセルG4を選びます。
- 次に、以下の数式を入力します。
=CELL("address")
この数式では、addressがCELL関数のinfo_type(情報の種類)引数に該当します。

ステップ02:セルの内容を追セルの内容を追跡する数式を挿入する
- 続いて、最後に入力された内容を表示するセルを選択します。ここではセルG5です。
- 次の数式を入力します。
=CELL("contents")
こちらのcontentsも、CELL関数のinfo_type引数の一種です。

ステップ03:ファイルパスを追跡する数式を作成する
- 最後に、ファイルの保存場所(フルパス)を表示するセルを選択します。ここではセルG8です。
- そのセルに、以下の数式を入力します。
=CELL("filename")
ここでのfilenameも、CELL関数のinfo_type引数です。

💡 結果の解説:
すべての数式を設定したら、試しにAdamの勤務時間(セルC5)を10から12に変更してみましょう。すると、以下のような変化が確認できます。
- まず、セルG4には最後に変更したセル番地である$C$5が表示されます。
- 次に、セルG5には最新の入力値である12が表示されます。
- 一方、セルG6(ファイルパス)は、ファイルの場所が変わらない限り変化しません。

関連記事:Excel Onlineで編集履歴を確認する方法(簡単な手順)
VBAコードで数式セルの変更を追跡する方法
次に、1つの値を変更すると複数のセルが連動して変わるようなデータセットを例に、変更されたセルを色でハイライト表示して追跡する方法を紹介します。さらに、確認後はその色を一括で消去できる仕組みも作ります。
以下のデータセットでは、時給のいずれかを変更すると多くのセルの値が連動して変化します。「1st Class Hourly Pay」を変更した際に、どのセルが変わったのかを黄色で可視化してみましょう。以下の手順に従ってください。

手順:
- まず、下のスクリーンショットのように、Reset(リセット)ボタンとTrack Change(変更追跡)ボタン用の図形を2つ挿入します。

- 次に、Alt + F11キーを押してVBAエディターを開きます。
- 作業中のシート(ここではSheet 4)を右クリックします。
- 続いて、挿入 > 標準モジュールを選択します。

- 以下のコードをコピーして、空白部分に貼り付けます。
'This code will delete conditional formatting for all cells
Sub DeleteFormat()
Cells.FormatConditions.Delete
End Sub
'This Code will Track the Cell Changes
Sub TrackCellChange()
For Each sheetw In ActiveWorkbook.Worksheets
sheetw.Cells.FormatConditions.Delete
Err.Clear
On Error Resume Next
x = sheetw.Cells.SpecialCells(xlCellTypeFormulas, 23).Count
If Err.Number = 0 Then
For Each cell In sheetw.Cells.SpecialCells(xlCellTypeFormulas, 23)
cell.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="=" & cell.Value
cell.FormatConditions(cell.FormatConditions.Count).SetFirstPriority
With cell.FormatConditions(1).Interior
.Color = 2552550
.TintAndShade = 0
End With
cell.FormatConditions(1).StopIfTrue = False
Next cell
End If
Next sheetw
End Sub

このコードでは、DeleteFormat()というプロシージャが、ブック内のすべての条件付き書式を削除するマクロを作成します。そして、TrackCellChange()というプロシージャが、値が変化したセルの色を変更する別のマクロを作成します。Forループを使ってワークシート上のすべてのセルを走査しており、数値2552550はRGB関数による黄色の指定を意味しています。
- コードを保存して、Excelの画面に戻ります。
- 次に、Resetの図形を右クリックし、マクロの登録を選択します。

- マクロの登録ダイアログからDeleteFormatマクロを選択します。
- その後、OKをクリックします。

- 同様に、Track Changeの図形にもTrackCellChangeマクロを登録します。
- 準備ができたら、Track Changeボタンをクリックします。

- ここで1st Class Hourly Payの値を変更します。今回は$20から$25に変更しました。
- すると、値が変化したセルC8、C11、C14が自動的に黄色に変わります。

- ハイライトを消したいときは、Resetボタンをクリックするだけで、以下のように元の状態に戻せます。

関連記事:Excelで変更履歴を追跡する方法(簡単な手順)
注意点
- CELL関数で追跡できるのは、あくまで「最後に変更された1つのセル」のみです。
- CELL関数を設定した後、数式タブにあるウォッチウィンドウにセルG4、G5、G6を追加すれば、これらのセルの変化を常に監視することも可能です。
- 練習用ワークブックをダウンロードした場合、ファイルの保存場所が異なるため、下のスクリーンショットのように#N/Aエラーが表示されることがあります。その場合は、該当する数式セルをクリックしてEnterキーを押すだけで解決します。

まとめ
この記事では、ExcelのCELL関数を使ったセル変更の追跡方法と、VBAマクロによる変更セルのハイライト表示方法を解説しました。ご不明な点があれば、ぜひコメント欄でお知らせください。また、このようなExcelに関する記事をもっと読みたい方は、ExcelDemyのウェブサイトもぜひご覧ください。
関連記事
- Excelで誰が変更したかを確認する方法(6つの簡単な方法)
- 【解決済み】Excelで「変更履歴」がグレーアウトする問題の対処法(3つのクイックフィックス)
- Excelで変更履歴を有効にする方法(カスタマイズ付き)
- 【解決済み】Excelで変更履歴が表示されない場合の対処法(簡単な修正方法)
-
Excelで図書館データベースを作成する方法|初心者向け簡単ステップ解説
Microsoft Excelは会計処理やデータ管理、予測分析などに使われることが多いソフトウェアですが、実は優れたデータベースソフトとしても活用できます。Excelはデータの入力・管理ツールとして非常に強力で、内蔵された機能を組み合わせれば、あらゆる種類のデータベースを簡単に構築できます。この記事では、Excelで図書館データベースを作成する方法と、フォームを使ってデータを入力する手順を詳しく解説します。 図書館データベースとは? データベースとは、電子的に保存され、必要に応じてアクセスできるように整理されたデータの集合体を指します。データの保存先は、ローカル環境でもオンラインのクラウド上
-
Excelの日付に「区切り位置」機能を使う方法|初心者向け簡単3ステップ
Excelを使用していると、「区切り位置」機能を活用したい場面がよくあります。この機能はさまざまな作業に役立ちます。本記事では、Excelで日付に対して「区切り位置」機能を使う方法を、必要な図解とともにわかりやすい3つのステップで紹介します。この記事を読めば、あなたのExcelスキルがさらに向上するはずです。 日付に「区切り位置」機能を使う手順 ここからは、Excelで日付に「区切り位置」機能を使う具体的な手順を説明します。まずデータセットを作成し、次に「区切り位置」ウィザードを実行することで、最終的に目的の結果を得ることができます。以下の手順を順番に確認しながら、図も参考にして進めてくださ