• ベストアンサー

セルが空か0か

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

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

Emptyを数値と比較すると、0にキャストされます。以下を実行すると分かりやすいかも。 Debug.print CLng( Empty ) 本当にセルの値が空かを調べたいなら、こうかしら: If IsEmpty( Range("A1").Value ) Then

adon0r
質問者

お礼

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

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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と違い、これは見たことない。

noname#22222
noname#22222
回答No.3

Private Sub CommandButton1_Click()   If Len(Range("A1") & "") = 0 Then     MsgBox "Cells(0, 0) is empty!"   End If End Sub 私は、Len関数での判定で統一しています。

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

Excel VBAですよね。 VisualBasicはかなり経験がありますがExcel VBAは仕事で最近始めました。 If Sheets(0).Range("A1")="" Or Sheets(0).Range("A1")=0 then   MsgBox "A1は値なしかゼロです",vbokonly End If でどうでしょうか? 今手元にExcelがないので、スペルが間違っているかもしれませんが…

関連するQ&A