みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

皆様よろしくお願いいたします。

エクセル2010を使用しております。

「 連続したセル範囲」、「A1」から「S1」がありまして
一部のセルは条件付き書式にて背景色が変更されており、
それ以外は変更されておりません。
(すべてのセルは通常の背景色塗りつぶしは一切ございません。)

その条件付き書式による背景色有無ですが
連続だったり とびとびだったりして規則性はありません。
(たとえば
「A1」から「K1」は色あり、
「L1」は色なし、
「M1」から「P1」は色あり、
「Q1」はなし
「R1」は色あり
「S1」は色なし)という具合です。

そしてセルの中にはアルファベット大文字で
「A1」セルには「A」、「B1」セルには「B」・・・「S1」セルには「S」と
一文字ずつ入力があります。

以上の内容で
「条件付き書式で着色されたセル」のみを
「条件付き書式による着色」を外して
VBAを用いて「選択」したいのですが、どのような
アプローチで行えばよろしいでしょうか?

どうかよろしくお願いいたします。

投稿日時 - 2019-07-10 22:59:46

QNo.9634049

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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


といったコードでいけると思います。

投稿日時 - 2019-07-11 16:15:48

ANo.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

投稿日時 - 2019-07-11 08:58:13

あなたにオススメの質問