- ベストアンサー
Excel VBAで空白セルをチェックする方法
- Excel VBAを使用して、選択範囲内の空白セルをチェックする方法を教えてください。
- 条件を満たす場合、メッセージを表示させたいです。
- A1からA3の範囲のみをチェックする場合、どのように記述すれば良いでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 >ある選択範囲でどれか1つのセルに空白があった場合 とあるので、調べたい範囲を選択した後、以下を実行しては? Sub bbb() Dim sel As Range For Each sel In Selection If IsEmpty(sel) Then MsgBox "開始時刻未入力" sel.Select Exit For End If Next sel End Sub ただ、範囲のすべてのセル、を知りたいということですからちょっと違ってるかもしれませんね。 でも、「チェックしたい」というのはやや曖昧です。どうしたいのでしょうか。 調べたい範囲を選択した上で、以下だったら該当セルだけ選択されます。 Sub ccc() Dim Rng As Range Set Rng = Selection Selection.SpecialCells(xlCellTypeBlanks).Select Set Rng = Nothing End Sub とか。 例えば、調べたい範囲を選択した後で、 Sub ddd() Dim sel As Range For Each sel In Selection If IsEmpty(sel) Then sel.Interior.ColorIndex = 4 End If Next sel ActiveCell.CurrentRegion.Cells(1, 1).Select End Sub としとけば空白の欄はとりあえず分かりますが。 (検査後、色を戻すようなことは適宜設定してください) >リストに入力された値が「n」行、B~F列の場合、 >その入力された行に空白がないかチェックするにはどのようにしたら>良いのでしょうか。 n行はデータを与えないといけないですね。 Sub eee() Dim Rng As Range Dim Flg As Boolean Dim n As Integer, c As Integer n = InputBox("何行目を検索?") Flg = False For c = 2 To 6 If IsEmpty(Cells(n, c)) Then Cells(n, c).Interior.ColorIndex = 6 Flg = True End If Next c If Flg = True Then MsgBox "開始時刻未入力" End Sub n に数字以外が入力された場合のエラー対応など色々細かいこともあるでしょうから適宜対応ください。
その他の回答 (1)
- soixante
- ベストアンサー率32% (401/1245)
範囲は適当ですけど Sub aaa() Dim sel As Range For Each sel In Range("a1:e10") If IsEmpty(sel) Then MsgBox "開始時刻未入力" sel.Select Exit For End If Next End Sub とかはどうでしょうか。
補足
ご説明が不足して申し訳ありません。 リストに入力された値が「n」行、B~F列の場合、 その入力された行に空白がないかチェックするにはどのようにしたら良いのでしょうか。 宜しくお願い致します。