実現したいこと
先日、マクロでスライサーのフィルタークリアの物を一部、スライサー項目別の物を一部ずつ印刷したいという問い合わせに回答頂き非常に感動した仕上がりの物をご教示頂きました。
今回、この応用でもう一つスライサーがあり2次抽出し、同じくフィルタークリアの物を一部、スライサー項目別の物を一部ずつ印刷したい。
発生している問題・分からないこと
苦戦している点が2段階構成になったことで抽出が上手くいかない事です。
例)
スライサー_日付:1124、1125、1126、、、と日付毎の抽出
スライサー_店舗コード:101、103、105、、、と店舗コードの抽出
日付が1124の時の店舗コード全クリアの物を1部、店舗コード項目別の物を1部ずつ、
続けて1125の時の店舗コード全クリアの物を1部、店舗コード項目別の物を1部ずつ
といった具合に日付の大分類ごとに店舗コードの各種を操作したいです。
該当のソースコード
Sub PrintSlicerFiltersAccurately_Final() Dim ws As Worksheet Dim slcCache As SlicerCache Dim slcItems As SlicerItems Dim s As slicerItem Dim i As Long Set ws = ThisWorkbook.Sheets("印刷") ' スライサーキャッシュを取得 On Error GoTo ErrHandler Set slcCache = ThisWorkbook.SlicerCaches("スライサー_店舗コード") On Error GoTo 0 Set slcItems = slcCache.SlicerItems ' 1. フィルタークリア状態を印刷 slcCache.ClearManualFilter ws.PrintOut Copies:=1 ' フィルタークリア状態を1部印刷 ' 2. 各スライサー項目ごとに1部ずつ印刷 With slcItems For i = 1 To .Count If .Item(i).HasData Then slcCache.ClearManualFilter For Each s In slcItems If .Item(i).Name <> s.Name Then s.Selected = False End If Next ws.PrintOut Copies:=1 End If Next End With slcCache.ClearManualFilter Exit Sub ErrHandler: MsgBox "スライサーが見つかりません", vbCritical End Sub
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
ChatGPTやこちらの掲示板などを拝見して調べましたが解決策がわかりませんでした
補足
特になし
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/11/27 05:16
2024/11/27 05:25
2024/11/27 05:35
2024/11/27 06:19
2024/11/27 06:23
2024/11/27 07:14
2024/11/27 08:10
2024/11/27 09:29
2024/11/28 01:12