[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
なぜ、それも条件付き書式にしないのでしょうか?
(マナ) 2018/12/18(火) 18:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.