プロが教える店舗&オフィスのセキュリティ対策術

ExcelのVBAでセルに文字(数字又は文字)が書かれているかの判断に”Empty”を使用していますが、これだとスペースのみ入力されていても空白と判断されません、他に本当に文字だけ書かれているかどうかを判別する方法はないでしょうか、具体的構文で教えていただけると幸いです。

A 回答 (4件)

Sub test01()


x = Range("A1").Value
If Len(Trim(x)) = 0 Then
y = "文字無し"
Else
y = "文字あり"
End If
MsgBox y
End Sub
    • good
    • 0
この回答へのお礼

早々に回答ありがとうございました。
皆さん、だいたい同じような方法でアドバイスいただきました。
”Len"と"Trim"を利用したらうまくできました。

お礼日時:2007/01/31 17:21

余分な空白を取り除いて桁数がゼロかどうか判定しては?



If Len(Application.Trim(ActiveCell)) = 0 Then
MsgBox("空白セル")
End If
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/31 17:22

Len(Trim(変数名))=0 これで未入力とスペースのみを判定できます。


数値も除くなら
ISNumeric
日付・時刻を除くなら
ISDate
と合わせて確認ですね。
    • good
    • 1
この回答へのお礼

早々にありがとうございました。
3名さんが同じようなご指摘で解決しました。

お礼日時:2007/01/31 17:23

こんにちは。



>ExcelのVBAでセルに文字(数字又は文字)が書かれているかの判断に”Empty”を使用していますが、

たぶん、ご質問が正確に伝わっていないようです。

Cells(1,1).Value =Empty

を判定に使っているということでしょうか?コードを見せないと良く分かりません。

If Cells(1,1).Value =""  '長さ0の文字列
は、Cells(1,1).Value =Empty 
と同じ判定です。

通常は、

IsEmpty(Cells(1,1)) などとしますが、
VarType(ActiveCell) = vbEmpty
という方法もあります。

>本当に文字だけ書かれているかどうかを判別する方法はないでしょうか、

その場合は、
VarType(ActiveCell) = vbString

を使用します。なお、IsNumeric では、文字列の数字なのかは判定出来ません。
なお、場合によっては、Rangeオブジェクトは、Valueプロパティを加えてください。
    • good
    • 2
この回答へのお礼

早々にありがとうございました。
VarType(ActiveCell) = vbEmptyはEmptyと同じになります。
LemとTrimでうまくいきました。

お礼日時:2007/01/31 17:25

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