Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7779 / 13644 ツリー ←次へ | 前へ→

【36906】文字入力の判別方法について moko 06/4/17(月) 21:40 質問[未読]
【36911】Re:文字入力の判別方法について ponpon 06/4/17(月) 23:05 発言[未読]
【36930】Re:文字入力の判別方法について Kein 06/4/18(火) 14:16 回答[未読]

【36906】文字入力の判別方法について
質問  moko  - 06/4/17(月) 21:40 -

引用なし
パスワード
   お願いします。

条件式でセルの値が数字ならば・・とする時
if isnumber(   ) then

になると思います。

これを、もし値が文字ならば・・ とするには
どの様な式になるでしょうか?

【36911】Re:文字入力の判別方法について
発言  ponpon  - 06/4/17(月) 23:05 -

引用なし
パスワード
   ▼moko さん:
>これを、もし値が文字ならば・・ とするには
>どの様な式になるでしょうか?

参考になるでしょうか?

Sub test()
  Dim A As Variant
  A = Range("A1").Value
  If TypeName(A) = "String" Then
    MsgBox "文字です"
  Else
    MsgBox "文字ではありません"
  End If
End Sub

【36930】Re:文字入力の判別方法について
回答  Kein  - 06/4/18(火) 14:16 -

引用なし
パスワード
   VBAのコード内でワークシート関数を使う場合は

If WorksheetFunction.IsNumber(Range("A1").Value) Then

などと書きます。この方法で文字列の判定をするなら

If WorksheetFunction.IsText(Range("A1").Value) Then

です。VBAの関数を使うなら、TypeName関数で String を判定する以外に

If VarType(Range("A1").Value) = 8 Then

でも出来ます。数値でなく文字定数との比較なら 〜 = vbString Then とします。
他には

If Not IsNumeric(Range("A1").Value) Then

も考えられますが、これはエラー値なども文字としてしまうので、注意が必要です。
つまりExcelでは「数値ではない = 文字」という単純な図式にはならないわけです。

7779 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free