
こんにちは。
諸事情があり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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- Excel(エクセル) エクセルの条件付き書式 3 2022/05/08 03:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
ある一定時間を超えた場合の超...
-
エクセルでの複数条件下での標...
-
隣のセルに入力したら自動的に...
-
エクセルで年月の合計の関数を...
-
エクセルで角度の計算できますか?
-
【スプレッドシート】指定の日...
-
Excelの表以外が暗い?
-
共有のエクセルで一人だけ正常...
-
時間帯ごとの集計をしたいがエ...
-
ある数値から始まるものをカウ...
-
複数連続した列幅や行高を一発...
-
エクセルにて「週」から日付を...
-
Excel:月またぎを含む日数の差...
-
エクセルで、一つのセルに二つ...
-
セルの値
-
オートSUMで列の合計がヘン
-
エクセル関数で同じ日付の合計...
-
【Excel2003で条件付き書式3つ...
-
エクセル 時間を等間隔に並べ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIFとCOUNTIFを合わせたよう...
-
ある一定時間を超えた場合の超...
-
隣のセルに入力したら自動的に...
-
エクセルでの複数条件下での標...
-
【スプレッドシート】指定の日...
-
エクセルで年月の合計の関数を...
-
エクセルで、一つのセルに二つ...
-
EXCEL 経過年数の平均を求めた...
-
エクセルにて「週」から日付を...
-
エクセルで角度の計算できますか?
-
複数連続した列幅や行高を一発...
-
Excelの表以外が暗い?
-
エクセル指定日付の数値を別シ...
-
エクセルで「ぶら下げ」書式を...
-
Excel:月またぎを含む日数の差...
-
エクセル シフト表 6連続勤...
-
Excelのセルにカレンダーの月日...
-
ある数値から始まるものをカウ...
-
excelでの文字を隠す方法
-
時間帯ごとの集計をしたいがエ...
おすすめ情報