• 締切済み

エクセルVBA 条件付き書式セルを選択

皆様よろしくお願いいたします。 エクセル2010を使用しております。 「 連続したセル範囲」、「A1」から「S1」がありまして 一部のセルは条件付き書式にて背景色が変更されており、 それ以外は変更されておりません。 (すべてのセルは通常の背景色塗りつぶしは一切ございません。) その条件付き書式による背景色有無ですが 連続だったり とびとびだったりして規則性はありません。 (たとえば 「A1」から「K1」は色あり、 「L1」は色なし、 「M1」から「P1」は色あり、 「Q1」はなし 「R1」は色あり 「S1」は色なし)という具合です。 そしてセルの中にはアルファベット大文字で 「A1」セルには「A」、「B1」セルには「B」・・・「S1」セルには「S」と 一文字ずつ入力があります。 以上の内容で 「条件付き書式で着色されたセル」のみを 「条件付き書式による着色」を外して VBAを用いて「選択」したいのですが、どのような アプローチで行えばよろしいでしょうか? どうかよろしくお願いいたします。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

条件付き書式で設定した条件にヒットしたセルたちを 選択状態にすればいいんですね? 条件付き書式の条件にヒットした場合に白を指定しない条件であれば、 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 といったコードでいけると思います。

ennkai
質問者

お礼

御回答ありがとうございます、 お礼を申し上げるのが遅くなり 申し訳ありません。 大変勉強になりました ありがとうございます

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.1

「条件付き書式による着色」を外して というのは、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

ennkai
質問者

お礼

御回答ありがとうございます、 お礼を申し上げるのが遅くなり 申し訳ありませんでした、 とても勉強になりました。 ありがとうございます

関連するQ&A