こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【Excel VBA】セルが塗りつぶされているものを探す方法を教えてください!

VBA初心者です。
お分かりになる方がいらっしゃったら、教えてください。
プロシージャを書いていただけると本当にありがたいです!

次のようなデータがあって、セルが赤く塗りつぶされているものがあれば、「データが間違っています」、なければ「OKです!」とメッセージボックスを表示したいのですが、どのようにすればよいかわかりません。

 A B   C   D
1 No.1 完了(赤) りんご 
2 No.2 受付  みかん
3 No.3 完了  みかん ○

ちなみに、B1のセルを塗りつぶすのは、
その前に、B列が"完了"でD列が""空白のものを検索し、赤く塗りつぶす構文を入れています。

Dim myData as integer
myData=Range("B1000").End(xlUp).Row
For i = myData To 2 Step -1
If Cells(i, 2).Value = "完了" And Cells(i, 4).Value = "" Then
Cells(i, 2).Interior.Color = vbRed
End If
Next i

この後にメッセージボックスが出るようにしたいです!
よろしくお願いいたします。

投稿日時 - 2009-11-12 19:14:07

QNo.5442714

すぐに回答ほしいです

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

簡単なサンプル。。。
 
'--------------------------------------------- 
Sub test()
 Dim i As Long
 Dim ErrCnt As Long
 Dim myData As Integer

 myData = Range("B1000").End(xlUp).Row
 For i = myData To 2 Step -1
   If Cells(i, 2).Value = "完了" And Cells(i, 4).Value = "" Then
     Cells(i, 2).Interior.ColorIndex = 3
     ErrCnt = ErrCnt + 1
   Else
     Cells(i, 2).Interior.ColorIndex = xlNone
   End If
 Next i

 If ErrCnt = 0 Then
   MsgBox "OKです!"
 Else
   MsgBox ErrCnt & " 件のエラーがあります"
 End If
End Sub
'---------------------------------------
 

投稿日時 - 2009-11-13 11:17:33

お礼

ありがとうございます!!
無事設定することができました!
件数まで出るようにしていただいて、本当にありがたいです!

また何かありましたら、どうぞよろしくお願いいたします!!

投稿日時 - 2009-11-16 12:26:07

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

やりたいことが何の意味があるのかよくわからないが、
下記で目的は達成するように思うが、こんなこととは違うんだろうね。
Dim myData as integer
myData=Range("B1000").End(xlUp).Row
For i = myData To 2 Step -1
If Cells(i, 2).Value = "完了" And Cells(i, 4).Value = "" Then
Cells(i, 2).Interior.Color = vbRed
MsgBox "データが間違っています"
End If
Next i

投稿日時 - 2009-11-12 22:19:53

お礼

ありがとうございます!
こんな感じでOKなんですけど、それがなかったときに、「OKです」と表示される方法がわからなくて。。。

else
MsgBox"OKです!"

としてしまうと、1行1行でメッセージが表示されてしまうから、
赤のセルのところを探すのに、findformatかなぁと思ったりしたんですが。

お時間があれば、よろしくお願いいたします!

投稿日時 - 2009-11-13 10:54:12

あなたにオススメの質問