- 締切済み
エクセルVBA 条件付き書式セルを選択
皆様よろしくお願いいたします。 エクセル2010を使用しております。 「 連続したセル範囲」、「A1」から「S1」がありまして 一部のセルは条件付き書式にて背景色が変更されており、 それ以外は変更されておりません。 (すべてのセルは通常の背景色塗りつぶしは一切ございません。) その条件付き書式による背景色有無ですが 連続だったり とびとびだったりして規則性はありません。 (たとえば 「A1」から「K1」は色あり、 「L1」は色なし、 「M1」から「P1」は色あり、 「Q1」はなし 「R1」は色あり 「S1」は色なし)という具合です。 そしてセルの中にはアルファベット大文字で 「A1」セルには「A」、「B1」セルには「B」・・・「S1」セルには「S」と 一文字ずつ入力があります。 以上の内容で 「条件付き書式で着色されたセル」のみを 「条件付き書式による着色」を外して VBAを用いて「選択」したいのですが、どのような アプローチで行えばよろしいでしょうか? どうかよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
条件付き書式で設定した条件にヒットしたセルたちを 選択状態にすればいいんですね? 条件付き書式の条件にヒットした場合に白を指定しない条件であれば、 Sub Sample() Dim c As Range, Target As Range For Each c In Range("A1:S1") If c.DisplayFormat.Interior.Color <> rgbWhite Then If Target Is Nothing Then Set Target = c Else Set Target = Union(Target, c) End If End If Next c If Not Target Is Nothing Then Target.Select End Sub といったコードでいけると思います。
- SI299792
- ベストアンサー率47% (772/1616)
「条件付き書式による着色」を外して というのは、A1~S1の条件付き書式を消すということでしょうか。 どのような条件で消すのか判らないので、選択に成功した時だけ外しています。 ' Option Explicit ' Sub Macro1() ' Dim Cell As Range Dim SRange As Range ' For Each Cell In [A1:S1] ' If Cell.DisplayFormat.Interior.Pattern = xlNone Then ElseIf SRange Is Nothing Then Set SRange = Cell Else Set SRange = Union(SRange, Cell) End If Next Cell ' If Not SRange Is Nothing Then SRange.Select [A1:S1].FormatConditions.Delete End If End Sub
お礼
御回答ありがとうございます、 お礼を申し上げるのが遅くなり 申し訳ありませんでした、 とても勉強になりました。 ありがとうございます
お礼
御回答ありがとうございます、 お礼を申し上げるのが遅くなり 申し訳ありません。 大変勉強になりました ありがとうございます