アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAでセルに入力された内容をクリアにするマクロをボタンに登録しているのですが、
対象セルが増えていき都度書き換えるのが面倒になりました。

例えば罫線が太枠のセルのみクリアの対象にしたいです。
もしくは、セルが●●色で塗りつぶされているセルを対象にする。

参考になるサイトでもよいので宜しくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

無事に解決することができました。

太枠(極太枠)をクリア対象とすることにしたので

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

と書き換えました。

ありがとうございます。

お礼日時:2014/07/23 13:44

No1補足です。



色は以下のような指定もできます。

Interior.Color = RGB(0, 0, 255)

それぞれの数値は塗りつぶしたセルの書式設定で「塗りつぶし」→「その他の色」→「ユーザー設定」のところでカラーモデルをRGBにするとそれぞれ赤(R)緑(G)青(B)の数値が確認できます。バージョンによっては単純な青が塗りつぶしの選択肢の中になく、選択肢にある青っぽい色を選択している場合、上記のRGB指定でないと定数vbBlueでは検索しても認識してくれません。

セルの書式(背景色・パターン)に関する参考ページ
http://www.239-programing.com/excel-vba/basic/ba …
    • good
    • 0

選択した範囲のセル範囲で塗りつぶしが赤のセルのデータをクリアする単純な例です。

ただし、条件付き書式で塗りつぶされているセルは以下の方法では見つかりません。

条件付き書式の取得は以下のページを参考にしてください。
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
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

無事に解決することができました。

ありがとうございます。

お礼日時:2014/07/23 13:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A