一回も披露したことのない豆知識

EXCELのVBAです。
 オートフィルタ(Autofilter)で、何らかの条件で抽出をかけた後の部分で、
特定のセル、例えば、2列目の上から5番目のセル、を選択するには、
どうすれば良いでしょう?

 言い方を変えれば、可視セルの中だけで、何列目で何行目セルという指定
をするにはどうすれば良いかと。

 RangeとかSelectionで、指定する方法が有るのでしょうか?

よろしくお願いいたします。

A 回答 (4件)

回答1~3をした者です。


私が訂正したところが直っていれば正しく走ると思うのですが。
(win7pro32bit, xl2003で確認)

Sub test()
Dim c As Range
Dim i As Integer
For Each c In ActiveSheet.Columns(2).SpecialCells(xlCellTypeVisible)
i = i + 1
If i = 6 Then  '←1行目はヘッダー行なので
c.Select
Exit Sub
End If
Next
End Sub
    • good
    • 6
この回答へのお礼

どうもです。
助かりました。お陰様で解決いたしました。
for each ~ next 文でループさせる点とか、すごく参考になりました。

上記のプロシージャに、以下のように、
一か所ちょっとだけ付け加えさせていただくことでなんとかなりました。

ActiveSheet.Columns(2).SpecialCells(xlCellTypeVisible)
 ↓(改)
ActiveSheet.Range("A1").CurrentRegion.Columns(2).SpecialCells(xlCellTypeVisible)


加えました
Range("A1").CurrentRegion の部分ですが、
仮にオートフィルタ抽出された表の最左上セルがA1であったとした場合です。
A1セルを含むCurrentRegionで表全体を選択した後でその表内の2列目の可視セル
ということになります。

どうも、お世話になりました。

お礼日時:2013/03/29 16:08

Next c じゃなくて Next でしたね。


たびたびすみません。
実際にマクロを走らせてみていないので。。。

この回答への補足

jin34様 お忙しい中をすみません。

実際にマクロを走らせてみましたが、
どうも、
フィルタ抽出された可視セルのなかでの上から5番目
ではなくて
全部のセル(可視・不可視 含めて)のなかでの上から5番目

選んでしまうようです。

残念ながら・・・。

補足日時:2013/03/29 12:33
    • good
    • 0

すみません。

訂正です。
Cells(i, 2).Select ではなく
c.Select です。
    • good
    • 0

「VBA Autofilter 可視セル」で検索しました。


下のリンク先を参照してください。
2列目の上から5番目のセルを選択するなら

Dim c As Range
Dim i As Integer
For Each c In Worksheets("Sheet1").Columns(2).SpecialCells(xlCellTypeVisible) 
i = i + 1
  If i = 5 Then
Cells(i, 2).Select
Exit Sub
End If
Next c

参考URL:http://vba.ti-da.net/e2488098.html
    • good
    • 1

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

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


おすすめ情報

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