[[20181218113955]] 『VBA 背景色の取得』(いちち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA 背景色の取得』(いちち)

E1〜N1まで数字が入力されています。
条件付き書式で、R1に入力した数字とE1〜N1に入力された数字が一致した場合、そこのセルの背景色が変わるようにしています。

VBAでやりたいことは、条件付き書式で変更されたセルの3列隣のセルに色を付けたいのです。下記のコードではうまくいきませんでした。

どこを修正したらいいのでしょうか。

Sub test()

Dim i As Long

For i = 5 To 10 'E列からN列まで繰り返し

If Cells(1, i).Interior.ColorIndex = 6 Then '背景色が黄色の場合

With Cells(1, i + 3).Interior '3列隣のセルに色付け

      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .Color = 13421823
      .TintAndShade = 0
      .PatternTintAndShade = 0
    End With
 End If

 Next

 End Sub

< 使用 Excel:Excel2010、使用 OS:Windows10 >


参考にしてください

 Sub test()
    Dim i As Long
    For i = 5 To 10
        If Cells(1, i).DisplayFormat.Interior.ColorIndex = 6 Then
            Cells(1, i + 3).Interior.Color = 13421823
        End If
    Next
 End Sub

(TAKA) 2018/12/18(火) 11:54


 Sub 判定()
    If Selection.Interior.Color = vbBlack Then
        MsgBox "黒い"
    End If
 End Sub

 結果 : 普通に黒く塗りつぶしたセル    →  メッセージが出る
         条件付書式で塗りつぶしたセル  →  メッセージが出ない

 Sub 判定2()
    If Selection.DisplayFormat.Interior.Color = vbBlack Then
        MsgBox "黒い"
    End If
 End Sub

 結果 : 普通に黒く塗りつぶしたセル    →  メッセージが出る
         条件付書式で塗りつぶしたセル  →  メッセージが出る

(TAKA) 2018/12/18(火) 12:01


うまくできました。
違いのコードまで教えて頂き大変勉強になります!!

ありがとうございます。
(いちち) 2018/12/18(火) 13:05


 ちなみに、DisplayFormatは
 今いちちさんが使っている Excel2010以降でしか使えません。

 Excel2007以前でやる場合は結構面倒です。。

(TAKA) 2018/12/18(火) 13:29


 もう見てないと思いますが、DisplayFormatを使わずR1セルと数字が一致したセルから3列隣に
 色を付けるという方法もありなのかなと思いまして…

 Sub test()

     Dim r As Range

     For Each r In Range("E1:N1")
         If r.Value = Range("R1").Value Then r.Offset(, 3).Interior.Color = 13421823
     Next

 End Sub
(bi) 2018/12/18(火) 15:30

>VBAでやりたいことは、条件付き書式で変更されたセルの3列隣のセルに色を付けたいのです。

なぜ、それも条件付き書式にしないのでしょうか?

(マナ) 2018/12/18(火) 18:41


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.