こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル オートフィルタ中の最終行移動マクロ

表題について質問させていただきます。

行数の決まっていないA~E列までデータが入っている表があります。
仮に10行だったとして、マクロの操作でA11に移動させるには、以下で可能だったのですが、
・Range("A65536").End(xlUp).Offset(1).Select
・Range("A1").End(xlDown).Offset(1,0).Select

オートフィルタ実行中は不可視セルが選択されてしまい上記例のA11に移動できません。
オートフィルタ実行中にもA11へ移動する方法をご教授願います。

※行数が15行のときはA16へ移動。
 新規に入力する行へ移動することが望みです。

エクセル2003です よろしくお願いいたします。

投稿日時 - 2009-04-28 22:05:10

QNo.4916652

困ってます

質問者が選んだベストアンサー

こんばんは。

どういうものが良いのか、いろいろ試してみてください。

Sub Test1()
With ActiveSheet
If .AutoFilterMode Then
 With .AutoFilter.Range.Columns(1)
   .Cells(.Cells.Count).Offset(1).Select
 End With
End If
End With
End Sub

投稿日時 - 2009-04-28 23:40:14

お礼

すっ すごい。
まさに思っていたとおりの動作です。
ありがとうございました。

投稿日時 - 2009-04-28 23:49:58

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

私の適当に作ったデータではこれで移動できたんですが
どうですかね。

ActiveSheet.AutoFilter.Range.End(xlDown).Offset(1, 0).Select

投稿日時 - 2009-04-28 22:46:09

お礼

お返事いただきありがとうございます。

さて、さっそく試させて頂いたのですが 希望の動きが出来ませんでした。
私の説明不足の部分だった部分をNo.1のかたへの部分に例題として明記させていただきました。
もし、よろしければ今一度ご教授願います。

投稿日時 - 2009-04-28 23:26:08

ANo.1

EXCEL2000ではMacro1でもうまく行くのですが
EXCEL2003はうまく行かないようですね
Macro2はどうでしょう?
EXCEL2000ではMcro1と同じ結果になります
試してみて

Sub Macro1()
MsgBox Range("a65536").End(xlUp).Address
End Sub

Sub Macro2()
MsgBox Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeLastCell).Address
End Sub

投稿日時 - 2009-04-28 22:43:48

お礼

お返事いただきありがとうございます。

さて、私の説明不足があるようでして、以下に例をあげて補足説明させていただきます。

以下のデータの場合。
code 商品名
1001 りんご
1002 みかん
1001 りんご
1001 りんご
下のマクロを実行すると どちらのマクロでも
・Range("A65536").End(xlUp).Offset(1).Select
・Range("A1").End(xlDown).Offset(1,0).Select
A6に移動します。

しかし、オートフィルタを使って 以下のように「みかん」のみを抽出している場合は
code 商品名
1002 みかん
不可視セルのA4に移動してしまうのです。

オートフィルタ中であっても どうにかA6に移動できる方法が知りたいのです。
なにとぞお願いいたします。
(最初の質問ではA~E列と明記しましたが便宜上A・Bの2列で説明させていただきました。)

投稿日時 - 2009-04-28 23:22:35

あなたにオススメの質問