エクセルのセルのデータが文字列か数式かを判定する

エクセルで、[A1]もしくは任意のセルに入力されている文字列や数値が、数式によって導き出されたり参照されたりしているものなのか、それとも直接データが入力されているのかを判定する。
つまり、[43]とか[○]とか、入力されているセルが実は[=B4-5]とか、[=C10]とかの結果としてそのように見えているだけなのかどうかを判定する。
いわゆる「マクロ」は組まない。

手順(Microsoft(R)Excel2000 の場合)

  1. カーソルを[B1]もしくは適当な[A1]以外の場所に置く
  2. エクセルのメニューで、挿入(I)>名前(N)>定義(D)で「名前の定義」を開く
  3. 名前(W)の欄は適当に入力しやすい名前を入れる。長い例だが、sikihantei
  4. 参照範囲(R)には =GET.CELL(6,A1) と入力する。
  5. [OK]で小窓を閉じる。
  6. 検査したいセルの右のセル([A1]を検査したいなら[B1],[D10]を検査したいなら[E10])に、=sikihanteiと入力すると、[A1]の内容が文字列になって表示される。[=B4-5]のように。
  7. あとは、find 関数や left 関数などで、文字列 "=" を検出すれば、当該のセルが数式なのか違うのかが(セルの書式のことは考慮に入れない場合)判定して他のセルの式などで利用できる。

条件付書式にこの方法を用いると、数式かデータかでセルの色を変えたりできます。もちろん数式の結果ではなく数式そののの比較も可能です。


問題は、GET.CELLという関数(?)はなかなか使う機会がないので、必要なときに思い出せないことだ。

★注意
ここで作成した定義、例では sikihantei は常に定義したシートを参照するようですので、シートを超えて・あるいはシートごとに動作する「名前」はよく確かめてやっちゃってください。