• ベストアンサー

エクセル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

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

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

こんばんは。 通常は、これでよいのですが、 Sub Macro2() Range("A5").AutoFilter End Sub つまり、Range("A5").CurrentRegion という同じ設定になるので、そこを含む、4角形の連続の範囲の頂点からが、AutoFilter に組み込まれます。通常は、フィルターモードに取り込り込みたくないデータは、間を空けると良いのですね。 もし、そういう状況なら、私なら、こう書きますが、こんな面倒なことしなくてもよいです。 Sub Macro3()   ActiveSheet.AutoFilterMode = False  With Range("A5").CurrentRegion    .Rows(5).HorizontalAlignment = xlCenter '真ん中寄せ    Range("A5", .Cells(.Count)).AutoFilter  End With End Sub >でも項目が消えてしまっています。これを回避できますか? ただ、別に、項目が消えたわけではありませんね。単に、文字(または数字)が右に行っているので、ドロップダウンボタンと重なり合っているだけです。上記のコードで参考にできるところがあったら、使ってみてください。

newme
質問者

お礼

Wendy02さんありがとうございました。解決できました。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Range("A5").AutoFilter A5をクリックして手動でフィルタをかけた時に自動的に5行目が選択される作りになっていない表の場合は、データ範囲をきちんと設定しないと意図した通りの動作はしてくれません。 Range("A5:D5").AutoFilter とか Range("A5:D100").AutoFilter のように範囲設定して下さい。

newme
質問者

お礼

hana-hana3さんありがとうございました。ちゃんと5行目からになりました。でも項目が消えてしまっています。これを回避できますか?

関連するQ&A