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

このQ&Aのポイント
  • エクセルオートフィルタ中の最終行に移動するマクロの作成方法について教えてください。
  • オートフィルタ実行中にも最終行に移動する方法を教えてください。
  • エクセル2003でオートフィルタ中に新規行に移動する方法を教えてください。
回答を見る
  • ベストアンサー

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

表題について質問させていただきます。 行数の決まっていないA~E列までデータが入っている表があります。 仮に10行だったとして、マクロの操作でA11に移動させるには、以下で可能だったのですが、 ・Range("A65536").End(xlUp).Offset(1).Select ・Range("A1").End(xlDown).Offset(1,0).Select オートフィルタ実行中は不可視セルが選択されてしまい上記例のA11に移動できません。 オートフィルタ実行中にもA11へ移動する方法をご教授願います。 ※行数が15行のときはA16へ移動。  新規に入力する行へ移動することが望みです。 エクセル2003です よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 どういうものが良いのか、いろいろ試してみてください。 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

Haku46
質問者

お礼

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

その他の回答 (2)

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.2

私の適当に作ったデータではこれで移動できたんですが どうですかね。 ActiveSheet.AutoFilter.Range.End(xlDown).Offset(1, 0).Select

Haku46
質問者

お礼

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

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.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

Haku46
質問者

お礼

お返事いただきありがとうございます。 さて、私の説明不足があるようでして、以下に例をあげて補足説明させていただきます。 以下のデータの場合。 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列で説明させていただきました。)

関連するQ&A

  • オートフィルタをしても本当の最終行を取得したい

    エクセル2007のVBAについて教えてください。 A1→目次 A2→あ A3→い A4→う A5→え A6→お オートフィルタで「え」を抽出します。 この状態で Sub test() MsgBox Range("a65536").End(xlUp).Row End Sub を実行すると、5が返ってきますが 実際の最終行は6です。 オートフィルタをしつつ、最終行を取得するには どうすればいいのでしょうか? ご回答よろしくお願いします。

  • Excelマクロでオートフィルターからコピペ

    ファイルのB列の値から0以外の値をオートフィルターで抽出し、値を、別のファイルのD列の一番下に貼りつけるマクロを作っていますがうまくいきません。 今作ったのは Sub macro1() If ActiveSheet.AutoFilterMode = False Then Range("A:G").Select Selection.AutoFilter Else Selection.AutoFilter Range("A:G").Select Selection.AutoFilter End If Selection.AutoFilter Field:=2, Criteria1:="<>0", Operator:=xlAnd Range("A1").Select Range("B2", Range("B2").End(xlDown)).Select Selection.Copy Windows("貼りつけるファイル名").Activate Cells(Rows.Count, 4).End(xlUp).Offset(1).Select ActiveSheet.Paste End Sub です。 フィルターで0以外の値を抽出しコピーまではできていますが、貼りつけるところでエラーがでます。 Microsoft Visual Basic 400 というエラーです。 何が悪いのか分かりません・・・。 分かる方いましたらご教授ください。よろしくお願いします。

  • オートフィルタを使わずに行削除

    こんにちは。 簡易記録のマクロで実行したものが、以下となります。 オートフィルタで選択した0以下の行を削除するために選択した物になります。 Sub 0以下を削除() ' Macro test ' ActiveSheet.Range("$A$1:$G$165").AutoFilter Field:=7, Criteria1:="<=0", _ Operator:=xlAnd Rows("3:56").Select ActiveWindow.SmallScroll Down:=66 Rows("3:165").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$1:$G$123").AutoFilter Field:=7 End Sub 行数は、日によって、様々で何千行となる場合もあります。 そこで、オートフィルタを使用せず、G列目の0以下の数値を行削除を行いたいです。 どのように設定したらいいか教えて頂けると幸いです。 不備がありましたら、補足を入れますので、 お手数ではございますが、宜しくお願い致します。

  • エクセル 行追加マクロについて

    エクセル 行追加マクロについて 2007エクセルマクロ初心者です。 スケジュール表を作成、行追加マクロを作ろうとしてます。 シートの上下に表があり、上の表に行追加です。 関数式を壊したくないので、一部セルへロックをかけています。 以下の点についてご教授をお願いいたします。 行追加マクロを実行するとパスワードを要求されます。 聞かれないようにできないでしょうか。? パスワードを入力した以降は要求されませんが シートの保護解除を選択すると保護が解除されてしまいます。 パスワード記載のマクロを試したことがありますが、 表へオートシェイプが描写できなかったので断念しました。 Sub 行追加() With ActiveSheet 'シート保護解除 .Unprotect Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 79).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 9).Select Selection.ClearContents 'シート保護 .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ True End With End Sub

  • エクセルのマクロ 最終行取得後の作業

    エクセルのマクロで(エクセル2010を使用) Range("A1:A900").Select Range("A" & Rows.Count).End(xlUp).Select i = Selection.Row 上記の900がセルの最終行で最終行数を取得し、iを利用して  Range("A1:A & i ").Select といった感じで使用したいのですが記述がわかりません。 申し訳ございませんが()内の書き方を教えてください。

  • エクセルVBAのオートフィルタについて

    オートフィルタ後の範囲選択で教えてください。 1行目にタイトルがある表で Range("a1").AutoFilter Field:=2, Criteria1:="PC" Range("A1").CurrentRegion.Select と実行すると1行目のタイトル行を含めて商品がPCの行が セレクトされます。 オートフィルタを何度も実行した結果を別シートにまとめる為 2回目以降はタイトル行を含めずにセレクトしたいのですが やり方がわかりません。お知恵をお貸しください。

  • フィルタ検索後、最上位行に移動する方法

    シート(請求書データベース)内のデータにフィルターをかけてデータ抽出後、最上位行に移動するVBAをご教授願いますでしょうか? ちなみにフィルター検索後も下記VBAで最下位行に移動はできます。 Sub 最下位行移動() Selection.End(xlDown).Select End Sub 下記VBAでは、フィルター検索後でも単純にA1行が選択されるだけで、フィルター抽出後の最上位行に移動できません。A1行は固定窓に設定しています。 Range("A2").Selectを入れると、フィルター抽出を解除した後であれば問題ないのですが、フィルター抽出後はA1行(先頭行)の下は何行目が来るかわかりません。 Sub 最上位行移動() Selection.End(xlup).Select End Sub

  • エクセルマクロについて

    最終行の1つ下の行に100000と入力したいですが Range("b65536").Select Selection.End(xlUp).Select ActiveCell.Offset(0, 1).Value = 100000 としてもうまく行きません Selection.End(xlUp).Select この部分だけで なんとかなるのでしょうか よろしくお願い致します

  • オートフィルタ 最終行を指定する必要は?

    エクセルでVBAでオートフィルタをする場合、 ******************************************* Sub test1() 最終列 = Range("IV1").End(xlToLeft).Column Range(Cells(1, 1), Cells(1, 最終列)).AutoFilter End Sub Sub test2() 最終行 = Range("a65536").End(xlUp).Row 最終列 = Range("IV1").End(xlToLeft).Column Range(Cells(1, 1), Cells(最終行, 最終列)).AutoFilter End Sub ******************************************* どちらでもできるのですが、 test2のように最終行を取得・指定する必要はあるのでしょうか?

  • エクセルVBAで5行目からオートフィルタモードに設定したいたい

    抽出項目が5行目にあり、オートフィルタを5行目から表示させたいのですが、うまくいきません。 Macro1では項目が消えてしまい、▼が1行目に、Macro2では項目は残りますが、▼は同じく1行目になってしまいます。どうしたら5行目にオートシェイプの▼が配置できるでしょうか? Sub Macro1() Range("A5").Select Selection.AutoFilter End Sub Sub Macro2() Range("A5").AutoFilter End Sub

専門家に質問してみよう