[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBA:塗りつぶしセルの削除』(POPO)
sheetには削除したいセルを条件付書式を使って塗りつぶしてあります(色番号は3です)。
そして、「塗りつぶしたセルを検索して削除する」という作業をマクロによって行いたいと考え、以下のようにマクロを組んでみました。
Sub Macro1()
With Application.FindFormat.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ColorIndex = 3 End With Application.FindFormat.Locked = True Application.FindFormat.FormulaHidden = False Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=True).Activate Selection.Delete Shift:=xlToLeft
End Sub
(上記のうち、最後の「Selection.Delete Shift:=xlToLeft」以外は
http://support.microsoft.com/default.aspx?scid=kb;ja;282153を参考にしました)
しかし実行すると
「実行時エラー '91':
オブジェクト変数または With ブロック変数が設定されていません。」
と表示されてしまいます。
これはマクロの組み方が誤りなのでしょうか。
それとも条件付書式で塗りつぶしたセルは検索できないのでしょうか。
皆様のご意見をお聞かせください。
よろしくお願いします。
条件付書式で塗りつぶしたセルと、セルの塗りつぶしは別物です。 1箇所のセルに設定して、試してみると分かると思います。
なので、その条件付書式の条件で検索して削除するしかないと思います。
(INA)
> なので、その条件付書式の条件で検索して削除するしかないと思います。
とのことですが、削除対象を判別する条件付書式が数種類あるため、どうしても「条件付書式で塗りつぶした色」に基づいて検索をしたいのです。
重ねての質問で申し訳ありませんがそのようなことは可能なのでしょうか。
ご教授いただければ幸いです。
よろしくお願いします。
(POPO)
>条件付書式が数種類 条件付き書式で対応できないときは、VBAを使うのですから 「条件付き書式で設定している」条件であれば、VBAでも当然書けるはずです。
対象範囲をfor each〜next でループさせて、 if文 などを用いて「条件付き書式で設定している」条件で、判別すれば良いのです。
(INA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.