- ベストアンサー
セルを参照するマクロまたは条件書式について教えてください
- セルを参照するマクロまたは条件書式について教えてください。シートAの特定のセルに特定の値が入力された時、別のシートの特定の範囲のセル値に応じてセルの塗りつぶしを変更したい場合、マクロや条件書式を使用することができます。
- マクロを使用する場合、特定のセルの値が変更されるたびに実行されるマクロを作成することができます。このマクロ内で、特定の条件に基づいてセルの塗りつぶしを変更するコードを記述します。
- 条件書式を使用する場合、特定のセルの値に応じて塗りつぶしを変更するルールを定義することができます。具体的には、条件書式ルールを作成し、特定のセル範囲と該当する条件を指定します。条件に応じて、セルの塗りつぶしの色を変更することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
試しに、マクロを書いてみました。 質問者さんがそれなりにマクロと向き合わないと 質問者さんの期待する仕様にはフィットしないかもしれません。 以下、前提条件です。 ・あ、い、う側のデータは縦方向に入力される ・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
その他の回答 (2)
- tsubu-yuki
- ベストアンサー率46% (179/386)
ご質問の主文は > マクロなのか条件書式なのかはわからないのですが > 上記のようなことができるか教えてください。 ここですね。 できますが、面倒ですよ。 マクロでもがんばって勉強すればできますし、 条件付き書式でもがんばって条件を見出せばできます。 人に依るでしょうが、私ならマクロを選択します。 添付図なら、 ・A1と同じ文字列をD列から検索し、行番号を取る。 ・B1に見合う範囲を使って入力規則を設定する。 のがA1セルの内容が変わった時のマクロ。 B1セルが変わった時のマクロは ・B1の書式を初期化。 ・A1と同じ文字列をD列から検索し、行番号を取る。 ・見合う範囲からB1の値を検索し、コピー。 ・B1に貼り付け。 でしょうか。 作りはしませんが、そんなに難しいものでも無いような気がします。 で、条件付き書式については、 私には色分けの条件を見出せないので深くは説明できません。 ただ、入力規則に関しては「エクセル 範囲 名前 可変」などで Web検索するとヒントくらいは見つかると思いますよ。 多分、縦方向にリストがあるのが多いと思いますが、 横方向でも応用可能です。 ま、縦に組み直せるならそれが一番楽ですが。
- msMike
- ベストアンサー率20% (364/1804)
言葉での説明はそれくらいにして、 セル A1、B1 にデータを入力して、希望する結果を示す色付きデータを示してください。ゴチャゴチャ説明でなく、視覚的に一目瞭然たるものをお願いします。
お礼
ありがとうございます。 自分なりにいろいろと調べて いただいたコードを参考に改造してみました。 目的のことも行えて非常に助かりました。 ややこしいお願いにも関わらずありがとうございました。