• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルを参照する マクロ? 条件書式?)

セルを参照するマクロまたは条件書式について教えてください

このQ&Aのポイント
  • セルを参照するマクロまたは条件書式について教えてください。シートAの特定のセルに特定の値が入力された時、別のシートの特定の範囲のセル値に応じてセルの塗りつぶしを変更したい場合、マクロや条件書式を使用することができます。
  • マクロを使用する場合、特定のセルの値が変更されるたびに実行されるマクロを作成することができます。このマクロ内で、特定の条件に基づいてセルの塗りつぶしを変更するコードを記述します。
  • 条件書式を使用する場合、特定のセルの値に応じて塗りつぶしを変更するルールを定義することができます。具体的には、条件書式ルールを作成し、特定のセル範囲と該当する条件を指定します。条件に応じて、セルの塗りつぶしの色を変更することができます。

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

試しに、マクロを書いてみました。 質問者さんがそれなりにマクロと向き合わないと 質問者さんの期待する仕様にはフィットしないかもしれません。 以下、前提条件です。 ・あ、い、う側のデータは縦方向に入力される ・1、2、3側のデータは、あ、い、うの埋まる行の別な列に埋まる。 ・あ、い、う側のデータは途中に空欄が無く、上詰めで入力される。 ・ヒットしなかったら背景色を白にする。 Option Explicit Const TblName = "Tbl"   'データ候補群の埋まったシートの名前 Const SLineNum = 1     'データ入力開始行 Const Data1ColNum = 1   '第一群のデータが埋まる列番号 Const Data2ColNum = 2   '第二群のデータが埋まる列番号 Private Sub Worksheet_SelectionChange(ByVal Target As Range)  PasteMain End Sub Sub PasteMain()  Dim wkL As Integer  wkL = SLineNum  With ThisWorkbook.ActiveSheet   Do    If .Cells(wkL, Data1ColNum).Value = "" Then Exit Sub    .Cells(wkL, Data2ColNum).Interior.Color = _      GetColor(.Cells(wkL, Data1ColNum).Value, .Cells(wkL, Data2ColNum).Value)    wkL = wkL + 1   Loop  End With End Sub Function GetColor(Txt1 As String, Txt2 As String) As Long  Dim wkCnt1 As Integer  Dim wkCnt2 As Integer  Dim HitNum1 As Integer  Dim HitNum2 As Integer    GetColor = 16777215  HitNum1 = 0  HitNum2 = 0  wkCnt1 = 0  wkCnt2 = 1    With ThisWorkbook.Sheets(TblName)   Do    wkCnt1 = wkCnt1 + 1    If .Cells(wkCnt1, 1).Value = "" Then Exit Do    If .Cells(wkCnt1, 1).Value = Txt1 Then     HitNum1 = wkCnt1    End If   Loop     If HitNum1 = 0 Then Exit Function     Do    wkCnt2 = wkCnt2 + 1    If .Cells(HitNum1, wkCnt2).Value = "" Then Exit Do    If .Cells(HitNum1, wkCnt2).Value = Txt2 Then     HitNum2 = wkCnt2    End If   Loop     If ((HitNum1 > 0) And (HitNum2 > 1)) Then    GetColor = .Cells(HitNum1, HitNum2).Interior.Color   End If  End With End Function

yyrd0421
質問者

お礼

ありがとうございます。 自分なりにいろいろと調べて いただいたコードを参考に改造してみました。 目的のことも行えて非常に助かりました。 ややこしいお願いにも関わらずありがとうございました。

その他の回答 (2)

回答No.3

ご質問の主文は > マクロなのか条件書式なのかはわからないのですが > 上記のようなことができるか教えてください。 ここですね。 できますが、面倒ですよ。 マクロでもがんばって勉強すればできますし、 条件付き書式でもがんばって条件を見出せばできます。 人に依るでしょうが、私ならマクロを選択します。 添付図なら、 ・A1と同じ文字列をD列から検索し、行番号を取る。 ・B1に見合う範囲を使って入力規則を設定する。 のがA1セルの内容が変わった時のマクロ。 B1セルが変わった時のマクロは ・B1の書式を初期化。 ・A1と同じ文字列をD列から検索し、行番号を取る。 ・見合う範囲からB1の値を検索し、コピー。 ・B1に貼り付け。 でしょうか。 作りはしませんが、そんなに難しいものでも無いような気がします。 で、条件付き書式については、 私には色分けの条件を見出せないので深くは説明できません。 ただ、入力規則に関しては「エクセル 範囲 名前 可変」などで Web検索するとヒントくらいは見つかると思いますよ。 多分、縦方向にリストがあるのが多いと思いますが、 横方向でも応用可能です。 ま、縦に組み直せるならそれが一番楽ですが。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.2

言葉での説明はそれくらいにして、 セル A1、B1 にデータを入力して、希望する結果を示す色付きデータを示してください。ゴチャゴチャ説明でなく、視覚的に一目瞭然たるものをお願いします。

関連するQ&A