• ベストアンサー

エクセル VBAを使って、セルの中身が文字か数値か判断したい

具体的に; Workbooks.Open Filename:=ca3'対象ファイルを設定 Sheets("Sheet1").Select'シートを指定 Debug.Print Cells(2, 3)'セルを参照 でセルを参照するところまでできました そこで、セル(例えばCells(2,3) )が文字が入って いるか/数値が入っているか、判別するには どうしたらいいのですか

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

  • ベストアンサー
  • laibach
  • ベストアンサー率29% (101/342)
回答No.3

「IsNumeric、って書いたら」とありますが、どのように書かれたのでしょうか? 例えば、VBAで  If IsNumeric(Cells(2, 3)) = True Then   data = Cells(2, 3)  Else   data = ""  End If のように書けば、エラーは出ないと思いますが。

ppmi
質問者

お礼

わかりました エラーなく、出来ました 返事おくれてすみませんでした

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

ちょっと割り込み失礼します。 #1 さんの書いた方法を、私は多様しますが、文字列であるか、数値であるかという判別というのは、あまりしたことがありません。それは、次に続くコードが重要だからです。 あれこれと、セルの情報を取りたいのでしたら、 Sub TestValueCheck()   Dim msg As String   Select Case VarType(Cells(2, 3))   Case vbEmpty    msg = "空"   Case vbDouble    msg = "数値"   Case vbString    msg = "文字列"   Case vbBoolean    msg = "ブーリアン値"   Case vbError    msg = "エラー値"   End Select   MsgBox msg & "です。" End Sub ということになりますかしらね。 通常は、 If Vartype(Cells(2,3).Value) = VbDouble Then  '処理 End if だけですね。 なお、IsNumeric 関数は、あくまでも、VBAの関数ですから、書式には関係がなく、数字であるという判別をします。数値であるのか、文字列かは関係がありません。

ppmi
質問者

お礼

よくわかりました ていねいに、ありがとうございました

  • laibach
  • ベストアンサー率29% (101/342)
回答No.2

セルに入っているのが文字か数値だけなら、IsNumeric関数を使えばいいと思います。 セルに空白もありえるのなら、IsEmpty関数も使った方がいいかもしれません。

ppmi
質問者

お礼

ありがとうございました 続けてお尋ねは失礼ですが、わかったらで! ------- IsNumeric、って書いたら、関数が定義されてない とエラーになりました これを有効にするにはどこか設定が必要なんでしょうか または、セルに直接呼び出す関数とVBAで使う関数 とちがうのでしょうか -------- 失礼します Excell2003、WindowXPです

noname#123709
noname#123709
回答No.1

下記で値の種類を表示します。 戻り値についてはHELPをみて下さい。 Sub test() MsgBox VarType(Cells(2, 3)) End Sub

ppmi
質問者

お礼

ありがとうございました できました

関連するQ&A

専門家に質問してみよう