• ベストアンサー

【エクセル】セルの情報

エクセルで、セルの内容が「数値」か、「数式あるいは関数」かを返す関数ないし方法があれば、教えてください。 TYPE, ISTEXTなどのヘルプを見たのですが、そのような機能はないようです。 (同じく「数値」として返されます) 具体的には、 単なる数値の「100」などが入力されていれば「TRUE(FALSE)」を返す、 他のセルからの参照(=A1*A2など)であれば「FALSE(TRUE)」を返す、 というようなことをしたいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんは。 VBAなら、HasFormulaプロパティを使えば判定できます。 たとえば検査対象範囲が C2:C30で、結果をD列に表示させるには、 ↓を実行してください。 ----------------------------------------- Sub test() Dim i As Integer For i = 2 To 30 If Cells(i, 3).HasFormula Then Cells(i, 4) = "TRUE" Else Cells(i, 4) = "FALSE" End If Next i End Sub ----------------------------------------- VBAを使わずに判定する方法をネットで探したところ、 ↓のようなやり方がありました。 なぜできるのかはわかりません^^; とりあえずEXCEL2000でも2003でもできました。 ----------------------------------------------- 結果を返したいD2セルをアクティブにして、メニュー〔挿入〕-〔名前〕-〔定義〕   ↓ 「名前」欄に適当な名前を入力(例:formula)   ↓ いちばん下の「参照範囲」欄に次のように入力してOK =GET.CELL(48、!C2)+NOW()*0   ↓ D2セルに =formula と入力して、以下オートフィルでコピー   ↓ C列のセルが数式なら"1"、それ以外なら"0"が返ります。 ------------------------------------------------ ↑はEXCEL4.0マクロだそうです。 ファイルを開くときにはマクロ警告メッセージが表示されます。

gucchi-you
質問者

お礼

ありがとうございます!!!シート内で処理したかったので、2番目の方法でバッチリうまくいきました。私にもなぜできるのかまったく分かりませんが(^^) 感謝、感謝です。