• ベストアンサー

VBAで特定の条件のセルのみクリアにする

VBAでセルに入力された内容をクリアにするマクロをボタンに登録しているのですが、 対象セルが増えていき都度書き換えるのが面倒になりました。 例えば罫線が太枠のセルのみクリアの対象にしたいです。 もしくは、セルが●●色で塗りつぶされているセルを対象にする。 参考になるサイトでもよいので宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! データは数式で表示されているのではなく、実データだとします。 データが入っているセルすべてが対象となります。 (1)仮に「赤」で塗りつぶされている場合は Sub Sample1() Dim c As Range For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants) If c.Interior.ColorIndex = 3 Then '←赤の場合 c.ClearContents End If Next c End Sub ※ 実際の色は「カラーインデックス」で検索してみてください。 (条件付き書式で色付けされている場合は反応しません) (2)罫線が「太線」の場合は Sub Sample2() Dim c As Range For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants) With c.Borders If .LineStyle = xlContinuous And .Weight = xlMedium Then c.ClearContents End If End With Next c End Sub ※ 線の太さは「マクロの記録」等で調べてみてください。 こんな感じではどうでしょうか?m(_ _)m

oimoita
質問者

お礼

ご回答ありがとうございます。 無事に解決することができました。 太枠(極太枠)をクリア対象とすることにしたので Sub Sample2() Dim c As Range For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants) With c.Borders If .LineStyle = xlContinuous And .Weight = xlMedium Then c.ClearContents End If End With Next c End Sub いただいた上記コードを Weight = xlThick Then と書き換えました。 ありがとうございます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

No1補足です。 色は以下のような指定もできます。 Interior.Color = RGB(0, 0, 255) それぞれの数値は塗りつぶしたセルの書式設定で「塗りつぶし」→「その他の色」→「ユーザー設定」のところでカラーモデルをRGBにするとそれぞれ赤(R)緑(G)青(B)の数値が確認できます。バージョンによっては単純な青が塗りつぶしの選択肢の中になく、選択肢にある青っぽい色を選択している場合、上記のRGB指定でないと定数vbBlueでは検索しても認識してくれません。 セルの書式(背景色・パターン)に関する参考ページ http://www.239-programing.com/excel-vba/basic/basic067.html

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

選択した範囲のセル範囲で塗りつぶしが赤のセルのデータをクリアする単純な例です。ただし、条件付き書式で塗りつぶされているセルは以下の方法では見つかりません。 条件付き書式の取得は以下のページを参考にしてください。 VBA セルの条件付き書式を取得する http://www.tipsfound.com/VBA/07019.vbhtml Sub Example() Dim c As Range For Each c In Selection If c.Interior.Color = vbRed Then c.ClearContents End If Next End Sub

oimoita
質問者

お礼

ご回答ありがとうございます。 無事に解決することができました。 ありがとうございます。

関連するQ&A