dポイントプレゼントキャンペーン実施中!

例えば
Sub tset1()
Dim mystr As String
mystr = "aaa"

If IsNumeric(mystr) = True Then
MsgBox "数値です"
End If

If IsText(mystr) = True Then
MsgBox "文字です"
End If

End Sub

と言うコードを作ったのですが、
数値かどうかはIsNumericで判断できますが
文字列かどうかを判断したい時にIsStringはないようなのでIsTextを使うのかな?
とおもったのですが、コンパイルエラーになるようです。

IsNumericはInformationクラスのようですが
IsTextはWorksheetFunctionクラスのようです。

だからIsNumericとIsTextの使い方が違うのでしょうか?
文字かどうか評価するIsTextの使い方をご教授ください。

A 回答 (1件)

WorksheetFunction オブジェクトというのはワークシート関数、すなわちワークシートのセルに入力して使うための関数のことです。

おなじみ SUM とか VLOOKUP とか、そういうのです。

Excel VBA では、「WorksheetFunction.IsText (数式)」などと「.関数名」(今回の場合は ISTEXT 関数)を続けて書くことにより、多くのワークシート関数が利用できます(※)。

※使えないものもあるので、VBE ヘルプの「Visual Basic で使用できるワークシート関数一覧」参照

ワークシート関数を使ったほうが簡潔なコードで必要な処理ができることもあります。折角たくさん用意されているので、コーディングの際には、何か使えるものがないか確認しておくとよいと思います。

IsNumeric は VBA 関数なので、オブジェクトの記述は不要で、いきなり関数名から書くことができます。

また、InStr 関数というのもありますから、VBE ヘルプで調べてみてください。そこらへんに調べたいワードを何でもかんでもタイプし、F1 キーを押すだけです。InStr と不等号を併用すれば、ご希望のことができるかもしれませんよ。

次の構文もご参考に。


If 条件 Then
  処理
ElseIf 条件 Then
  処理
'Else    ←処理が必要な場合は「'」を外す
'  処理  ←処理が必要な場合は「'」を外す
End If
    • good
    • 0
この回答へのお礼

VBA関数かワークシート関数かの違いのようですね。ありがとうございました。

お礼日時:2013/01/31 19:43

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