質問: False '以下省略 End With ``` また、VBAを使わず手動でフィルターを「5*」で検索した場合のマクロの記録では、 上記の結果となり、「5*」以外の値を明記する必要が生じてしまいます。 ### 補足情報(FW/ツールのバージョンなど) EXCEL 2016 / Windows10 使用
回答: > > また、VBAを使わず手動でフィルターを「5*」で検索した場合のマクロの記録では、 > > 上記の結果となり、「5*」以外の値を明記する必要が生じてしまいます。 > > > そのような結果になったということは、「5*」そのものをVBAでストレートに表現するのは難しい、ということだと思います。Excelが裏でそれだけのユーザー操作を代行していた、ということですね。私もつい最近、似たような事例に遭遇しました。 私の場合は`PivotItems`が固定かつ数も少なかったので、それぞれの`Visible`の`True`と`False`をいちいち設定することで解決しました。 質問者さんの事例で`PivotItems`が可変であるならば、`PivotItems`コレクションの要素一つ一つが「5*」に当てはまるか判定しながら`Visible`を切替えるようなロジックが必要になると思います。 つまり、質問者さんの示されているコードが最善に近い、というのが結論です。 追記 ピボットテーブルのフィルタの数にも制限があるようです。 Excel の仕様および制限 回避策ではありますが、「5*」を実現するための列(先頭1文字抽出とか)を追加して、その列にフィルタをかける手もなくはないです。