プロが教える店舗&オフィスのセキュリティ対策術

こんばんは
ある選択範囲でどれか1つのセルに空白があった場合
メッセージを表示させたいのですが、
リスト中に入力された範囲のすべてのセルをチェックしたいのです。
どのようにしたら良いのでしょうか。

A1~A3の範囲のみでしたら下記でよいのかな?と考えてみました。
VBA勉強中なのですが、なかなかうまくいきません。お力をお願い致します。
If IsEmpty(Range("a2:d2").Value) Then
MsgBox "開始時刻が入力されていません。"
Worksheets("Sheet1").Range("a2").Select

A 回答 (2件)

範囲は適当ですけど



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列の場合、
その入力された行に空白がないかチェックするにはどのようにしたら良いのでしょうか。
宜しくお願い致します。

補足日時:2009/06/25 18:54
    • good
    • 0

#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 に数字以外が入力された場合のエラー対応など色々細かいこともあるでしょうから適宜対応ください。
    • good
    • 0

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