Excelシートで数式を使用しているセルを検索したいとき、通常の検索では「数式の結果(値)」しか見つかりません。
しかし、VBAを使えば「セルに含まれる数式そのもの(たとえば =SUM(A1:A5)
など)」を検索することが可能です。
本記事では、数式の一部をキーワードとして検索し、該当セルの位置を特定する方法をご紹介いたします。
目次
想定する用途と目的
- 「SUM」や「VLOOKUP」など特定の関数を使用しているセルを抽出したい。
- 数値結果ではなく、数式の内容を元に検索したい。
- シート内の複雑な数式構造を把握・レビューしたい。
VBAコードの例
以下のコードでは、アクティブシート全体から「AVERAGE」というキーワードを含む数式を検索し、最初に見つかったセルのアドレスを表示します。
Sub SearchFormulaText()
Dim foundCell As Range
Set foundCell = Cells.Find( _
what:="AVERAGE", _
LookIn:=xlFormulas, _
LookAt:=xlPart)
If foundCell Is Nothing Then
MsgBox "指定されたキーワードを含む数式は見つかりませんでした。", vbInformation
Else
MsgBox "該当セル:" & foundCell.Address, vbInformation
End If
End Sub
各パラメータの解説
パラメータ名 | 説明 |
---|---|
what | 検索する文字列(数式の中に含まれるキーワード) |
LookIn:=xlFormulas | 数式そのものを検索対象にする設定。これがないと数式の結果が検索対象になります。 |
LookAt:=xlPart | キーワードが数式の一部に含まれていればヒット(完全一致にするには xlWhole を指定) |
応用例
- 「IFERROR」を含むすべてのセルを見つけて修正対象にする。
- 「INDIRECT」や「OFFSET」などの動的参照関数を使っている箇所だけ抽出。
- ワークシート全体の関数使用状況を確認・可視化。
まとめ
Excel VBAでは、Find
メソッドを使って「数式そのもの」を検索することが可能です。
この方法を使えば、数式の構造を可視化したり、特定の関数を含むセルだけを抽出したりといった、より高度なデータ分析や検証作業が効率的に行えます。
関数の見直しやトラブルシューティング時にも活用できる便利なテクニックですので、ぜひ実務に取り入れてみてください。