- ベストアンサー
エクセル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
- みんなの回答 (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 >でも項目が消えてしまっています。これを回避できますか? ただ、別に、項目が消えたわけではありませんね。単に、文字(または数字)が右に行っているので、ドロップダウンボタンと重なり合っているだけです。上記のコードで参考にできるところがあったら、使ってみてください。
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
>Range("A5").AutoFilter A5をクリックして手動でフィルタをかけた時に自動的に5行目が選択される作りになっていない表の場合は、データ範囲をきちんと設定しないと意図した通りの動作はしてくれません。 Range("A5:D5").AutoFilter とか Range("A5:D100").AutoFilter のように範囲設定して下さい。
お礼
hana-hana3さんありがとうございました。ちゃんと5行目からになりました。でも項目が消えてしまっています。これを回避できますか?
お礼
Wendy02さんありがとうございました。解決できました。