てぃーだブログ › S・M・C (Simple.Macro.Create) ~エクセルマクロ日記~ › VBA › エクセルマクロ(VBA):オートフィルター可視セルの操作

2009年07月21日

エクセルマクロ(VBA):オートフィルター可視セルの操作

前回から、データを抽出するマクロについて書いていますが、
今回は、オートフィルターで抽出したデータを、
1件目から順番に参照していくマクロを考えたいと思います。

オートフィルターで画面上に抽出されたデータは、マクロ側
から見れば、単純に1行目、2行目とは認識できないようです。
あくまでも、行番号で参照するようです。

エクセルマクロ(VBA):オートフィルター可視セルの操作

その抽出されたデータの行番号を取得する必要があります。

そこで、前回も説明した可視セルを対象とする便利な命令があります。

細かい説明は省きます・・というか、よくわかりません。
こんな命令があったぐらいでいいと思います。

それでは、
 オートフィルターで、「沖縄県」の方を抽出して、
 年齢が30歳未満の方の対象者欄(F列)へ
 〇印を編集する、マクロを作ってみます。

Sub Macro1()

  Worksheets("Sheet1").Select
  Range("A1").Select

  Selection.AutoFilter
  Selection.AutoFilter Field:=3, Criteria1:="沖縄県"

  For Each c In Worksheets("Sheet1").Columns(1).SpecialCells(xlCellTypeVisible) 

    If  c  =  "" Then                            
  Exit Sub
  End If

  If Range("e" & c.Row) < 30 Then
   Range("f" & c.Row) = "〇"
 End If

 Next c

End Sub


結果。
エクセルマクロ(VBA):オートフィルター可視セルの操作

こんな感じでしょうか。


これができると、オ-トフィルターで抽出したデータを
別シートへコピーして、1行目から順序よく参照していく
処理は省けるかもしれませんね。


同じカテゴリー(VBA)の記事

Posted by ミール at 10:54│Comments(0)VBA
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。