こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

セルが空か0か

VBでプログラミングをしているのですが、あるセルが空かどうかを調べるために
If Cells(0,0)=Empty Then
等という風に書いたらセルA1が0と入力されているときもThen以下が処理されてしまいます、セルA1が0のときと空のときの処理を分けたいのですがどうすればいいか教えてください。

投稿日時 - 2006-12-19 05:32:44

QNo.2611660

困ってます

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

Emptyを数値と比較すると、0にキャストされます。以下を実行すると分かりやすいかも。
Debug.print CLng( Empty )

本当にセルの値が空かを調べたいなら、こうかしら:

If IsEmpty( Range("A1").Value ) Then

投稿日時 - 2006-12-19 08:49:10

お礼

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

投稿日時 - 2006-12-20 01:08:11

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

IsEmpty()関数がVBAにあり、()内に数・数式・文字列式を書きます。ですから()内に、セルの値を表現する式Cells(1,1).Value を書けます。
なお質問の If Cells(0,0)=Empty Then
の  Cells(0,0)ですが
Sub test02()
MsgBox Cells(1, 1).Value
MsgBox Cells(0, 0).Value
End Sub

MsgBox Cells(0, 0).Value
はエラーになりました。Offsetと違い、これは見たことない。

投稿日時 - 2006-12-19 23:39:26

ANo.3

Private Sub CommandButton1_Click()
  If Len(Range("A1") & "") = 0 Then
    MsgBox "Cells(0, 0) is empty!"
  End If
End Sub

私は、Len関数での判定で統一しています。

投稿日時 - 2006-12-19 09:39:32

ANo.1

Excel VBAですよね。

VisualBasicはかなり経験がありますがExcel VBAは仕事で最近始めました。

If Sheets(0).Range("A1")="" Or Sheets(0).Range("A1")=0 then
  MsgBox "A1は値なしかゼロです",vbokonly
End If
でどうでしょうか?

今手元にExcelがないので、スペルが間違っているかもしれませんが…

投稿日時 - 2006-12-19 07:17:35

あなたにオススメの質問