• ベストアンサー

IsNumberについて

Sub macro01() If WorksheetFunction.IsNumber(123) = ture Then MsgBox "数値です" End If End Sub WorksheetFunction.IsNumber(123)で、数値なら、MsgBox "数値です"って表示されると思ったのですが、 MsgBox "数値です"を通りません。 123を数値と認識してないのでしょうか?

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

  • ベストアンサー
  • 374649
  • ベストアンサー率38% (203/527)
回答No.3

trueの綴りが違ってますね、VBAではisNumber関数ではなくisNumeric関数を使います。 Sub macro01() If IsNumeric(123) = true Then MsgBox "数値です" End If End Sub http://www.kanaya440.com/contents/script/vbs/function/data/is_numeric.html

bwhefdpgbp
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

よく見て!! ture ↓ true じゃないのか。

bwhefdpgbp
質問者

お礼

ありがとうございました。

回答No.1

論理値なら、 If WorksheetFunction.IsNumber(123) Then で、ヨイではないか、、、

bwhefdpgbp
質問者

お礼

ありがとうございました。

関連するQ&A

  • 数値かどうかを取得したい IsNumberではダメ

    Sub Macro2() Dim mystr As String mystr = "1" If IsDate(mystr) = False Then MsgBox "NO" End If End Sub これなら日付型かどうかを取得できるのに、 Sub Macro1() Dim mystr As String mystr = "1" If IsNumber(mystr) = False Then MsgBox "NO" End If End Sub だと、IsNumberがコンパイルエラーになります。 変数に入っている値が数値として評価できるかを取得する方法を教えてください。

  • エクセルVBA Inputboxについて教えてください。

    InputBoxの使い方について教えてください。 テストで下記のように書いてみました。 Sub input_test2() ans = InputBox("質問!適当に数字を入れてね") MsgBox Application.WorksheetFunction.IsNumber(ans), vbInformation, "入力判定" If Application.WorksheetFunction.IsNumber(ans) Then If ans = 0 Then MsgBox "入力されたのは、 0", vbInformation, "回答" If ans = 1 Then MsgBox "入力されたのは、 1", vbInformation, "回答" If ans = 2 Then MsgBox "入力されたのは、 2", vbInformation, "回答" If ans = 3 Then MsgBox "入力されたのは、 3", vbInformation, "回答" If ans >= 4 Then MsgBox "入力されたのは、 4以上", vbInformation, "回答" Else MsgBox "入力は数字でしてください!", vbExclamation, "お願い" End If End Sub 1.入力が数値ならTRUEがかえると思ったのですが、何を入れてもFALSEしかかえりません。どこがまずいのでしょうか? 2.表示されるInputBoxのサイズが随分横に長いのですが、サイズを変える方法はあるのでしょうか? 3.MsgBoxの"入力判定"や”回答”ようにInputBoxにも最上行に日本語を表示させる方法はないでしょうか? 以上、よろしくお願いいたします。

  • セルには何も入ってないのに、数値型になる理由は?

    セルに何も入ってない状態で Sub Macro() If IsNumeric(Range("a1").Value) = True Then MsgBox "A1には数値が入ってます" End If End Sub を実行すると、 "A1には数値が入ってます" が表示されます。 なぜでしょうか? Sub Macro2() MsgBox TypeName(Range("a1").Value) End Sub を実行すると、stringが返ってきます。

  • 指定した時間より前なら(Time If)

    Sub Macro6() if time < 13:00:00 then MsgBox "1時より前です" End If End Sub これを実行したいのですが 構文エラーとなります。 どうすればいいでしょう? よろしくお願いします。

  • エクセル・時刻に関する質問

    添付画像のようなエクセルで以下の標準モジュールを作っています。 Sub test001() If Cells(2, 2) = TimeValue("9:00:00") Then MsgBox ("9:00:00認識しました") Else MsgBox ("9:00:00認識しませんでした。") End If If Cells(3, 2) = TimeValue("9:05:00") Then MsgBox ("9:05:00認識しました") Else MsgBox ("9:05:00認識しませんでした。") End If If Cells(3, 2) = 0.378472222222222 Then MsgBox ("2回目9:05:00認識しました") Else MsgBox ("2回目9:05:00認識しませんでした。") End If If Cells(4, 2) = TimeValue("9:10:00") Then MsgBox ("9:10:00認識しました") Else MsgBox ("9:10:00認識しませんでした。") End If If Cells(5, 2) = TimeValue("9:15:00") Then MsgBox ("9:15:00認識しました") Else MsgBox ("9:15:00認識しませんでした。") End If If Cells(6, 2) = TimeValue("9:20:00") Then MsgBox ("9:20:00認識しました") Else MsgBox ("9:20:00認識しませんでした。") End If End Sub 実行すると、9:05:00 だけが、「9:05:00認識しませんでした。」となります。 時刻以外は同じ内容のはずですが 9:05:00 だけ認識されません。 解決策をお願いします。

  • 「IsText」の使い方を教えてください

    例えば 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の使い方をご教授ください。

  • エクセルVBAでセルが数値か数式かの判断方法

    エクセル2000です。 Sub Suuchi() If IsNumeric(Range("A1")) = True Then MsgBox "数値で~す♪" Else MsgBox "数値じゃないよ!" End If End Sub とやってみたんですが、数式も数値となってしまいます。 数値、数式、文字の判断はどうやればいいんでしょうか?

  • (VBA)フィルタがかかっているかどうかの判断方法

    フィルタがかかっているかどうかを取得したいのですが フィルタがかかっているシートにて Sub test1() If ActiveSheet.FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test1の1() If ActiveSheet.FilterMode = True Then MsgBox "フィルタがかかってます" End If End Sub を実行しても"フィルタがかかってます"は表示されません。 Sub test2() If Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test3() If ActiveSheet.Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub こちらは オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) になってしまいます。 フィルタがかかっているか調べる方法はありますか? よろしくお願いします。

  • 非表示の列があるか取得したい。

    Sub Macro1() Columns("a").Hidden = True End Sub としたら、A列が非表示になりますよね。 そして、セル全体に非表示の列があるかどうかを取得したい場合はどうすればいいでしょう? Sub Macro2() If Cells.Hidden = True Then MsgBox "非表示の列があります" End If End Sub をすると、実行時エラー1004になります。 それに Cells.Hiddenの時点で、列だけじゃなくなってしまいます。 あと、最終列はファイルによってまちまちです。 Z列の時もあれば、EAの時もあります。 ご回答よろしくお願いします。

  • 「R = ActiveCell」がエラーになる。

    エクセルvbaです。 下記のコードのどこがおかしいのか教えてください。 Sub Macro1() Dim R As Range R = ActiveCell If R Like "*1*" Then MsgBox "1があります" End If End Sub アクティブセルに「1」があれば、 MsgBoxを表示したいのですが うまくいきません。 オブジェクト変数または With ブロック変数が設定されていません。(Error 91) というエラーになります。 If ActiveCell Like "*1*" Then ではなく、一度、変数Rに格納したいです。 解決策をよろしくお願いします。

専門家に質問してみよう