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

解決済みの質問

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

VBA初心者です。
以下のような事をVBAで実現したいのですが、どのようにすればいいのでしょうか。

添付画像のような数値データ表があります。

それぞれの列に表示されたデータ表をリストA、BとリストD、Eとします。
リストAを上から見ていき最初に条件の548が出てきたらセルに色を付けたいです。そして、リストBの条件はリストAで条件を満たしたセルがある行の次の行からのデータ表のみで条件検索をしたいです。そして、リストBの条件を満たしたらそのセルに色を付けたいです。

そして、リストBに条件を満たすものが出たら「TRUE」などのサインを表示したいです。

リストDとEは同様の検索方法で行ってE列リストに条件を満たすセルがなかった場合の例です。その場合は「FALSE」などのサインを表示したいです。

よろしくお願いします。

投稿日時 - 2018-01-08 12:52:19

QNo.9416231

暇なときに回答ください

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

文章を見ると、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

投稿日時 - 2018-01-08 13:56:19

お礼

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

解決しました。

投稿日時 - 2018-01-08 16:51:28

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

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

回答(1)