
こんにちは。
諸事情がありVBAで条件付き書式を設定したく現在奮闘中です。
色々なサイトを見ながらやってみたものの思うように動きませんでした…
やりたいことは例として、
A3:A500に重複する値がある場合フォントを太字の赤にします。
それを各列同様に設定(B列はB3:B500、CはC3:C500…という感じです)といった感じです。
尚、各列ともに重複が無くなった場合は元の書式に戻るといった内容です。
どなたかご教示いただけますと幸いです。
宜しくお願いいたします。
(当方:WIN10 Excel2019)
No.2ベストアンサー
- 回答日時:
>諸事情がありVBAで条件付き書式を設定したく・・・
という諸事情はなんでしょうか
一般的にはVBAを使う場合であっても、条件付き書式を予め設定しておけば足りるケースが多いのではないかと推測します。
但し、条件付き書式の設定範囲をデーリートする事情があり、再設定するとか、全く新しいブックやシートを追加して、そこに条件付き書式を設定する必要があるという場合は、VBAで条件付き書式を設定することになると思います。
No.1さんの回答はいわゆる「①数式を使用して、書式設定するセルを決定」という方法だと思います。
これとは別に、条件付き書式設定には「②一意の値または重複する値だけを書式設定」という機能もあります。
設定範囲はNo.1さんの回答と同じだとして①の方法だと、一つの条件付き書式の設定で、A3:C500の範囲に対し、「列毎に重複を判定するという数式」を用いればよいわけですが、②の方法だと、列毎に範囲内の重複を判定するという条件と書式が一対ですので、3つの条件付き書式を設定する必要が生じます。このため、VBAが長くなってしまいますが、その機能を使用した例は以下のようなものです。
Dim i As Long
With Range("A3:A500") 'A列の範囲
With .FormatConditions
.AddUniqueValues
.Item(.Count).SetFirstPriority
.Item(1).DupeUnique = 1
.Item(1).Font.Bold = True
.Item(1).Font.Color = vbRed
.Item(1).StopIfTrue = False
End With
.Copy
For i = 2 To 3 'B列~C列まで
Cells(3, i).PasteSpecial Paste:=xlPasteFormats
Next
Application.CutCopyMode = False
End With
End Sub
もし、C列(3列目)以降の列も同様の書式にする場合は
i=2 to 3の部分の3を最終列の番号にすることで対応願います。
お礼が遅れ大変失礼しました…
ご回答ありがとうございました!
少し考えている内容とは違うんですが、
一番近い内容でしたのでベストアンサーとさせていただきます!
No.1
- 回答日時:
こんばんは
固定範囲での条件付き書式の設定なので、「マクロの記録」を利用すれば、そのまま使えるものが得られますよ。
以下は、ご参考までに。
※ 対象とするのは、A列、B列、C列で良いものと解釈しました。
Sub test()
Const f = "=COUNTIF(A$3:A$500,A3)>1"
With Range("A3:C500").FormatConditions
.Add Type:=xlExpression, Formula1:=f
.Item(.Count).SetFirstPriority
.Item(1).Font.Bold = True
.Item(1).Font.Color = vbRed
.Item(1).StopIfTrue = False
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
隣のセルに入力したら自動的に...
-
エクセルで日報を作成時に指定...
-
【スプレッドシート】指定の日...
-
ある一定時間を超えた場合の超...
-
エクセルにて「週」から日付を...
-
エクセルで条件に当てはまる曜...
-
エクセルでの複数条件下での標...
-
Excelの1つのセルにそれぞれ文...
-
エクセルの○の集計
-
Excelの表以外が暗い?
-
EXCEL 経過年数の平均を求めた...
-
複数連続した列幅や行高を一発...
-
エクセル シフト表 6連続勤...
-
エクセルで「ぶら下げ」書式を...
-
エクセルVLOOKUP関数でヒットし...
-
エクセルでフィルターを使用時...
-
Excel:月またぎを含む日数の差...
-
Excelで文字列を数式として認識...
-
エクセル指定日付の数値を別シ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
ある一定時間を超えた場合の超...
-
エクセルで年月の合計の関数を...
-
エクセルでの複数条件下での標...
-
隣のセルに入力したら自動的に...
-
【スプレッドシート】指定の日...
-
エクセルで角度の計算できますか?
-
Excelの表以外が暗い?
-
複数連続した列幅や行高を一発...
-
エクセルで「ぶら下げ」書式を...
-
エクセルにて「週」から日付を...
-
EXCEL 経過年数の平均を求めた...
-
エクセルで、一つのセルに二つ...
-
Excel:月またぎを含む日数の差...
-
時間帯ごとの集計をしたいがエ...
-
ある数値から始まるものをカウ...
-
excelでの文字を隠す方法
-
EXCEL 年月表示をするVBAを教...
-
エクセル2010で合計5000に近い...
-
エクセル 重複行色付(VBA)に...
おすすめ情報