プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000です。

Sub Suuchi()
If IsNumeric(Range("A1")) = True Then
MsgBox "数値で~す♪"
Else
MsgBox "数値じゃないよ!"
End If
End Sub

とやってみたんですが、数式も数値となってしまいます。
数値、数式、文字の判断はどうやればいいんでしょうか?

A 回答 (4件)

if Range("A1").HasFormula then


'数式
elseif IsNumeric(Range("A1").Value) then
'数値
else
'文字列
end if
でいいと思います。
    • good
    • 5
この回答へのお礼

すばらしい!
完璧です。
HasFormulaって初めて見ました。
たすかりました。

お礼日時:2004/11/25 10:05

Range("A1")はあくまでも結果で判定されますから数式の結果が数値なら


"数値で~す♪"が表示されます。

文字でなく色をつける方法なら紹介されたサイトがあります。
エクセル技道場【数式が入力されているセルに色をつける】
http://www2.odn.ne.jp/excel/waza/macro.html#SEC23
    • good
    • 1
この回答へのお礼

ありがとうございました。
勉強になりました。

お礼日時:2004/11/25 10:04

他にもっと良い方法があるような気がしますが、とりあえず動くもの


アクティブセルが数式かどうかを判断します
Dim x As Range
Set x = Application.Intersect(ActiveCell, Application.Cells.SpecialCells(xlCellTypeFormulas))

If x Is Nothing Then
MsgBox "数式じゃない"
Else
MsgBox "数式"
End If
    • good
    • 0
この回答へのお礼

なるほど。SpecialCellsが使えるんですね。勉強になりました。

お礼日時:2004/11/25 10:03

数式の条件も入れたほうがいいですよ。



+-*/()

他にもあるかなぁ。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2004/11/25 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!