[[20110418003634]] 『マクロでフィルターしたセルの背景に色を付ける』(マテリアルサンタ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでフィルターしたセルの背景に色を付ける』(マテリアルサンタ)
エクセルのバージョン2007又は、2003 OS winxp

 初めて投稿します。よろしくお願いします。

エクセルのマクロで、フィルターしたのち、
フィルターされたセルを選択して、
背景色に色を付けたいのですがどうすればよいでしょうか。
自動記録だと、100行までの値の入ったA列のセル
(1〜3の数字が入ってます)に対して、 

@【3】 の値をフィルターさせました。 
A フィルターされたセルをすべて選択しました。 
この時は、たまたま、A38番セルが始点となりました。 
B 背景色を黄色にしました。 

自動記録だと下記内容が記録されました。

 Sub Macro1()

 ’@【3】 の値をフィルター

    ActiveSheet.Range("$A$1:$A$100").AutoFilter Field:=1, Criteria1:="3" 
 
 ’Aフィルターされたセルをすべて選択しました。
 ’この時は、たまたま、A38番セルが始点となりました。
     Range("A38").Select
     Range(Selection, Selection.End(xlDown)).Select 

 ’B背景色を黄色にしました。

     With Selection.Interior 
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

 ここで一番わからないのが、Aの始点の箇所がいつもランダムであるため レンジセレクトができない。ということです。 この場合、どのようなコードの記述ができるのでしょうか。  セルの条件付き書式で背景色はマクロ以外でも自動でつけれることは 分かっているのですが、数に限りがあるのもりゆうとなりますが、 なんとか、マクロで作成したく。

 どうかよろしくお願いします。(マテリアルサンタ)

  


 手作業の場合の、ジャンプ→可視セルを使うと良さそうですが

  Sub Macro1()
  With ActiveSheet.Range("$A$1:$A$100")
    .AutoFilter Field:=1, Criteria1:="3"
    .SpecialCells(xlCellTypeVisible).Interior.Color = 65535
  End With
  End Sub

 (momo)

 手作業の場合。。。。
 非表示のセルを選択して居ても
 その時表示されていたセルにだけ 色が付くと思いますが。

 A列に間に空白セルを含まず入力があるなら
 Range("A2").Select
 Range(Selection, Selection.End(xlDown)).Select 
 これで、A列のデータ部分が選択出来ると思いますが
 このまま色を付ければ、表示されていた部分にだけ色が付く。

 マクロの記録でやる場合 非表示に成ったA2セルを選択するのは面倒なので
 抽出前に 選択しておけば良いと思います。

 1.A列のデータがある範囲を選択
 2.A列で「3」の物をオートフィルタで抽出
 3.色を付ける

 (HANA)

 (momo)さん (HANA)さんありがとございました。
フィルターする前にセレクトする方法は、思いつきませんでした。
事前に始点を指定すれば問題なく処理できました。
ありがとうございました。
無事に完成できました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.