プロが教える店舗&オフィスのセキュリティ対策術

Excelで、全シートの1行目(範囲はA1~BD1)に、色のついているセルがあれば
その列を削除したいのですが、どなたかご教授願います。

現在、下記コードで、1つのシートで","のついている列を削除しているのですが,
それを全シートの1行目(範囲はA1~BD1)に、色のついているセルがあれば
その列を削除するようにしたいです。
Sub 削除()
Dim rng As Range
Set rng = Rows(1).Cells.Find(",", , xlValues, xlPart)
If Not rng Is Nothing Then
Range(rng.Offset.EntireColumn, rng.Address).Delete
End If
Set rng = Nothing
End Sub

ご教授よろしくお願いいたします。

質問者からの補足コメント

  • 実行してみました
    添付画像のエラーが発生しました

    「Excelで、一行目に色がついている列を」の補足画像1
    No.2の回答に寄せられた補足コメントです。 補足日時:2021/01/19 22:04

A 回答 (3件)

ループで1列ずつ確認し処理したほうが良い

    • good
    • 0

こんにちは



こんな感じのことでしょうか?
※ 削除ではなく選択にしてあります。
※ 対象は、ActiveSheetのみにしてあります。

Dim u As Range, c As Range
For Each c In Range("A1:BD1")
 If c.DisplayFormat.Interior.Pattern = xlNone Then
  If u Is Nothing Then Set u = c Else Set u = Union(u, c)
 End If
Next c
If Not u Is Nothing Then u.EntireColumn.Select
この回答への補足あり
    • good
    • 0
この回答へのお礼

親切に対応して頂きありがとうございます
行ってみた所、エラーメッセージにてうまく
動いてくれませんでした

すみません

お礼日時:2021/01/19 22:02

No2です



>添付画像のエラーが発生しました
あらっ、そうですかぁ…

では、その行を
 If c.Interior.Pattern = xlNone Then
に替えてみて下さい。
これによって、条件付き書式で色がついている列は拾えなくなりますけれど・・・

ついでながら、添付の画像ではSelect が Selectt になっちゃってるみたいですけれど・・・?
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にさせて頂きます

お礼日時:2021/01/21 21:58

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