- ベストアンサー
エクセル VBAを使って、セルの中身が文字か数値か判断したい
具体的に; Workbooks.Open Filename:=ca3'対象ファイルを設定 Sheets("Sheet1").Select'シートを指定 Debug.Print Cells(2, 3)'セルを参照 でセルを参照するところまでできました そこで、セル(例えばCells(2,3) )が文字が入って いるか/数値が入っているか、判別するには どうしたらいいのですか
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「IsNumeric、って書いたら」とありますが、どのように書かれたのでしょうか? 例えば、VBAで If IsNumeric(Cells(2, 3)) = True Then data = Cells(2, 3) Else data = "" End If のように書けば、エラーは出ないと思いますが。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
ちょっと割り込み失礼します。 #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の関数ですから、書式には関係がなく、数字であるという判別をします。数値であるのか、文字列かは関係がありません。
お礼
よくわかりました ていねいに、ありがとうございました
- laibach
- ベストアンサー率29% (101/342)
セルに入っているのが文字か数値だけなら、IsNumeric関数を使えばいいと思います。 セルに空白もありえるのなら、IsEmpty関数も使った方がいいかもしれません。
お礼
ありがとうございました 続けてお尋ねは失礼ですが、わかったらで! ------- IsNumeric、って書いたら、関数が定義されてない とエラーになりました これを有効にするにはどこか設定が必要なんでしょうか または、セルに直接呼び出す関数とVBAで使う関数 とちがうのでしょうか -------- 失礼します Excell2003、WindowXPです
下記で値の種類を表示します。 戻り値についてはHELPをみて下さい。 Sub test() MsgBox VarType(Cells(2, 3)) End Sub
お礼
ありがとうございました できました
お礼
わかりました エラーなく、出来ました 返事おくれてすみませんでした