- ベストアンサー
エクセルVBAでセルが数値か数式かの判断方法
エクセル2000です。 Sub Suuchi() If IsNumeric(Range("A1")) = True Then MsgBox "数値で~す♪" Else MsgBox "数値じゃないよ!" End If End Sub とやってみたんですが、数式も数値となってしまいます。 数値、数式、文字の判断はどうやればいいんでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
if Range("A1").HasFormula then '数式 elseif IsNumeric(Range("A1").Value) then '数値 else '文字列 end if でいいと思います。
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7417/18945)
Range("A1")はあくまでも結果で判定されますから数式の結果が数値なら "数値で~す♪"が表示されます。 文字でなく色をつける方法なら紹介されたサイトがあります。 エクセル技道場【数式が入力されているセルに色をつける】 http://www2.odn.ne.jp/excel/waza/macro.html#SEC23
お礼
ありがとうございました。 勉強になりました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
他にもっと良い方法があるような気がしますが、とりあえず動くもの アクティブセルが数式かどうかを判断します Dim x As Range Set x = Application.Intersect(ActiveCell, Application.Cells.SpecialCells(xlCellTypeFormulas)) If x Is Nothing Then MsgBox "数式じゃない" Else MsgBox "数式" End If
お礼
なるほど。SpecialCellsが使えるんですね。勉強になりました。
- haruka1234567890
- ベストアンサー率18% (120/666)
数式の条件も入れたほうがいいですよ。 +-*/() 他にもあるかなぁ。
お礼
ありがとうございます。
お礼
すばらしい! 完璧です。 HasFormulaって初めて見ました。 たすかりました。