- ベストアンサー
VBA 条件を満たすリストにサイン表示したい
VBA初心者です。 以下のような事をVBAで実現したいのですが、どのようにすればいいのでしょうか。 添付画像のような数値データ表があります。 それぞれの列に表示されたデータ表をリストA、BとリストD、Eとします。 リストAを上から見ていき最初に条件の548が出てきたらセルに色を付けたいです。そして、リストBの条件はリストAで条件を満たしたセルがある行の次の行からのデータ表のみで条件検索をしたいです。そして、リストBの条件を満たしたらそのセルに色を付けたいです。 そして、リストBに条件を満たすものが出たら「TRUE」などのサインを表示したいです。 リストDとEは同様の検索方法で行ってE列リストに条件を満たすセルがなかった場合の例です。その場合は「FALSE」などのサインを表示したいです。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
文章を見ると、D~Eはサンプルであり、処理の必要はないという風に受け取りました。 であれば、Macro1です。 D~Eも処理の必要があるなら、Macro2です。 ' Option Explicit ' Sub Macro1() ' Dim Row As Integer ' [A1:B15].Interior.Pattern = xlNone ' For Row = 1 To 15 ' If [A22] <= Cells(Row, "A") Then Cells(Row, "A").Interior.Color = &HFF7FFF Exit For End If Next Row [B20] = False ' For Row = Row + 1 To 15 ' If [B22] >= Cells(Row, "B") Then Cells(Row, "B").Interior.Color = &HFFFF00 [B20] = True Exit For End If Next Row End Sub ' Sub Macro2() ' Dim Col As Integer Dim Row As Integer ' [A1:E15].Interior.Pattern = xlNone ' For Col = 1 To 4 Step 3 ' For Row = 1 To 15 ' If Cells(22, Col) <= Cells(Row, Col) Then Cells(Row, Col).Interior.Color = &HFF7FFF Exit For End If Next Row Cells(20, Col + 1) = False ' For Row = Row + 1 To 15 ' If Cells(22, Col + 1) >= Cells(Row, Col + 1) Then Cells(Row, Col + 1).Interior.Color = &HFFFF00 Cells(20, Col + 1) = True Exit For End If Next Row Next Col End Sub
お礼
早速回答をいただき、ありがとうございました。 解決しました。