- ベストアンサー
セルが空か0か
VBでプログラミングをしているのですが、あるセルが空かどうかを調べるために If Cells(0,0)=Empty Then 等という風に書いたらセルA1が0と入力されているときもThen以下が処理されてしまいます、セルA1が0のときと空のときの処理を分けたいのですがどうすればいいか教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Emptyを数値と比較すると、0にキャストされます。以下を実行すると分かりやすいかも。 Debug.print CLng( Empty ) 本当にセルの値が空かを調べたいなら、こうかしら: If IsEmpty( Range("A1").Value ) Then
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
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と違い、これは見たことない。
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)
Excel VBAですよね。 VisualBasicはかなり経験がありますがExcel VBAは仕事で最近始めました。 If Sheets(0).Range("A1")="" Or Sheets(0).Range("A1")=0 then MsgBox "A1は値なしかゼロです",vbokonly End If でどうでしょうか? 今手元にExcelがないので、スペルが間違っているかもしれませんが…
お礼
解決しました。ありがとうございました。