teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

回避策を追加

2018/12/06 13:01

投稿

morinatsu
morinatsu

スコア395

answer CHANGED
@@ -5,4 +5,11 @@
5
5
  私の場合は`PivotItems`が固定かつ数も少なかったので、それぞれの`Visible`の`True`と`False`をいちいち設定することで解決しました。
6
6
 
7
7
  質問者さんの事例で`PivotItems`が可変であるならば、`PivotItems`コレクションの要素一つ一つが「5*」に当てはまるか判定しながら`Visible`を切替えるようなロジックが必要になると思います。
8
- つまり、質問者さんの示されているコードが最善に近い、というのが結論です。
8
+ つまり、質問者さんの示されているコードが最善に近い、というのが結論です。
9
+
10
+ ---
11
+
12
+ 追記
13
+ ピボットテーブルのフィルタの数にも制限があるようです。
14
+ [Excel の仕様および制限](https://support.office.com/ja-jp/article/excel-%E3%81%AE%E4%BB%95%E6%A7%98%E3%81%8A%E3%82%88%E3%81%B3%E5%88%B6%E9%99%90-1672b34d-7043-467e-8e27-269d656771c3)
15
+ 回避策ではありますが、「5*」を実現するための列(先頭1文字抽出とか)を追加して、その列にフィルタをかける手もなくはないです。

1

回答が、改善案になっていなかったので書き方を変更。

2018/12/06 13:01

投稿

morinatsu
morinatsu

スコア395

answer CHANGED
@@ -4,4 +4,5 @@
4
4
  そのような結果になったということは、「5*」そのものをVBAでストレートに表現するのは難しい、ということだと思います。Excelが裏でそれだけのユーザー操作を代行していた、ということですね。私もつい最近、似たような事例に遭遇しました。
5
5
  私の場合は`PivotItems`が固定かつ数も少なかったので、それぞれの`Visible`の`True`と`False`をいちいち設定することで解決しました。
6
6
 
7
- 質問者さんの事例で`PivotItems`が可変であるならば、`PivotItems`コレクションの要素一つ一つが「5*」に当てはまるか判定しながら`Visible`を切替えるようなロジックが必要と思います。
7
+ 質問者さんの事例で`PivotItems`が可変であるならば、`PivotItems`コレクションの要素一つ一つが「5*」に当てはまるか判定しながら`Visible`を切替えるようなロジックが必要になると思います。
8
+ つまり、質問者さんの示されているコードが最善に近い、というのが結論です。