【結論:スライサー(タイムライン)の選択期間を、VBAでセルに自動転記できます!】
「集計レポートのタイトルに、スライサーで選んだ期間を手入力している…」
そんな手間をゼロにするマクロの書き方を解説しました。
ソースコードを冒頭で先に紹介する
```vba Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) Debug.Print "Worksheet_PivotTableUpdate", Now() Debug.Print Target.Name Debug.Print "スライサーの数:", Target.Slicers.Count Dim n As Long For n = 1 To Target.Slicers.Count Debug.Print "-", "名前:", Target.Slicers(n).Caption If Target.Slicers(n).Caption = "日付" Then 'ここから、中身を探る キャッシュの下が気になるけど Dim oSlicer As Excel.SlicerCache Set oSlicer = Target.Slicers(n).SlicerCache '=Caption = "日付"のスライサーを代入 '日付の範囲なので Debug.Print "|", "TimelineState.StartDate=", oSlicer.TimelineState.StartDate Debug.Print "|", "TimelineState.EndDate=", oSlicer.TimelineState.EndDate Debug.Print "|", "TimelineState.FilterValue1=", oSlicer.TimelineState.FilterValue1 Debug.Print "|", "TimelineState.FilterValue2=", oSlicer.TimelineState.FilterValue2 End If Next End Sub ```

お急ぎの方は、以下のリンクから核心部分へ直接飛んでみてください。
1. 【一番のポイント】タイムラインの期間を抜く「TimelineState」
タイムライン: 15:14 https://www.youtube.com/watch?v=GTgvCh9GJg4&t=914
内容: SlicerCacheの「TimelineState.StartDate / EndDate」を使って日付を取得する核心部分。
ポイント: これを知っているだけで、日付スライサーの制御が格段に楽になります。

2. 【見どころ】「動いたら自動実行」させるイベント設定
タイムライン: 07:40 https://www.youtube.com/watch?v=GTgvCh9GJg4&t=460
内容: Worksheet_PivotTableUpdate イベントを使って、スライサーを触った瞬間にセルを書き換える設定です。
ポイント: ボタンを押す手間すら省く「全自動化」の鍵がここにあります。
3. 【誠実なポイント:注意点】エラーが出た時の回避策
タイムライン: 21:07 https://www.youtube.com/watch?v=GTgvCh9GJg4&t=1267
内容: 手動フィルター時や選択ミスで発生する「アプリケーション定義エラー」の直し方。
ここが重要: 現場で「動かない!」とならないよう、On Error Resume Next を使った堅実な書き方をフォローしています。
4. 【操作デモ】実際に動いている様子を確認
タイムライン: 00:19 https://www.youtube.com/watch?v=GTgvCh9GJg4&t=19
内容: 冒頭で「何ができるようになるのか」の結果をすぐに見せています。
5. 【正直にお伝えします】
・ライブ中の試行錯誤があるため、完成コードだけ見たい方は [00:32:52](https://www.youtube.com/watch?v=GTgvCh9GJg4&t=1972) 付近の結果を参考にしてください。
▼
質問や「こんなマクロも見てみたい」というリクエストがあれば、YouTubeのコメント欄へお気軽にどうぞ!
#ExcelVBA #ピボットテーブル #スライサー #業務効率化