プロが教えるわが家の防犯対策術!

複数セルに空欄があったらメッセージを出したいと思います。
以下コードを実行すると”型が一致しません"と出ます。
どう変えたらいいでしょうか。

Sub 空白セル()
Dim i As Long
i = Range("A1,S1,K1")
If i = "" Then
MsgBox "空白セルがあります"
End If
End Sub

A 回答 (2件)

No.1の者です。



セルが複数ある場合、1つずつ確認する形になると思います。
.Value で、セルのデータを取得できますので、そこで文字があるかの
チェックができます。

シンプルなチェックだと
Sub 空白セル()
If Range("A1").Value = "" Then Msgbox "A1セルは空白です。"
If Range("S1").Value = "" Then Msgbox "S1セルは空白です。"
If Range("K1").Value = "" Then Msgbox "K1セルは空白です。"
End Sub


For Eachは、まとまったものを、1つずつ確認する時に便利です。
ワークシートや、複数のセルなど。

Sub 空白セル()
Dim myRng As Range
For Each myRng In Range("A1,K1,S1")
If myRng.Value = "" Then msgbox "空白セルがあります"
Netx
End Sub
    • good
    • 2
この回答へのお礼

Netx→Nextで動作しました。
簡潔でわかりやすいコード有難う御座います。

お礼日時:2022/02/13 10:50

おはようございます。



例えば下記の様な感じとかは、どうでしょうか?

Sub 空白セル()
Dim myRng As Range, myAdr As String
myAdr = ""
For Each myRng In Range("A1,K1,S1")
If myRng.Value = "" Then
myAdr = myAdr & myRng.Address(False, False) & ","
End If
Next
If myAdr <> "" Then
MsgBox myAdr & "が空白です"
End If
End Sub
    • good
    • 0
この回答へのお礼

早速の返信有難う御座います。
調べたらLongは数字を扱うのでNGですね。基本でした。
いただいたコードですが思ったより複雑なのですね。
確認していきます。

お礼日時:2022/02/13 08:51

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A