Excel VBAで数式の結果ではなく数式そのものを検索する方法|xlFormulasの活用法

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メソッドを使って「数式そのもの」を検索することが可能です。
この方法を使えば、数式の構造を可視化したり、特定の関数を含むセルだけを抽出したりといった、より高度なデータ分析や検証作業が効率的に行えます。

関数の見直しやトラブルシューティング時にも活用できる便利なテクニックですので、ぜひ実務に取り入れてみてください。

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

この記事を書いた人

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

目次