• ベストアンサー

VBA 条件を満たすリストにサイン表示したい

VBA初心者です。 以下のような事をVBAで実現したいのですが、どのようにすればいいのでしょうか。 添付画像のような数値データ表があります。 それぞれの列に表示されたデータ表をリストA、BとリストD、Eとします。 リストAを上から見ていき最初に条件の548が出てきたらセルに色を付けたいです。そして、リストBの条件はリストAで条件を満たしたセルがある行の次の行からのデータ表のみで条件検索をしたいです。そして、リストBの条件を満たしたらそのセルに色を付けたいです。 そして、リストBに条件を満たすものが出たら「TRUE」などのサインを表示したいです。 リストDとEは同様の検索方法で行ってE列リストに条件を満たすセルがなかった場合の例です。その場合は「FALSE」などのサインを表示したいです。 よろしくお願いします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.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

don-naldo
質問者

お礼

早速回答をいただき、ありがとうございました。 解決しました。

関連するQ&A

専門家に質問してみよう