Pivot Double Click イベントをキャプチャする方法はありますか? (別シートにDetail Viewを生成するイベント。)
選択したピボットのデータソース全体をデータテーブルとして表示する方法はありますか?
C#、VSTO プログラミングを使用しています。
vbaで行う方法は次のとおりです。次のコードをワークシートのコード モジュールに挿入します。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim pt As Excel.PivotTable
On Error Resume Next
Set pt = Target.PivotTable
If Err.Number = 0 Then
MsgBox "captured"
'to cancel uncomment next line
'Cancel = True
End If
End Sub
編集:「新しいシートで値の範囲をキャプチャする必要があるため、ダブルクリック イベントの後を探しています。」
これを試してみてください。これを ThisWorkbook モジュールに入れます。モジュール レベルの変数を使用して、ピボットがダブルクリックされたかどうかを追跡し、それを NewSheet イベントでチェックします。
Private PivotDoubleClicked As Boolean
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim pt As Excel.PivotTable
On Error Resume Next
Set pt = Target.PivotTable
If Err.Number = 0 Then
PivotDoubleClicked = True
End If
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
If PivotDoubleClicked Then
MsgBox "new sheet from pivot double-click"
PivotDoubleClicked = False
End If
End Sub
Range
オブジェクトのShowDetail
プロパティに興味があると思います。
データセット全体を取得するにDataBodyRange
は、ピボット テーブルの に対してこのプロパティを設定できます。
Excel.PivotTable pivotTable = (Excel.PivotTable)Globals.Sheet3.PivotTables(1);
pivotTable.DataBodyRange.ShowDetail = true;
編集:コメントごとに、ピボットテーブルがレンダリングするデータセットが必要な場合は、 を使用してPivotCache
を決定SourceType
し、 のタイプに応じてデータを逆に取得するメソッドを作成する必要がありSourceType
ます。に関係なくを返すPivotTable
orのプロパティはありません。.NETはなおさらです。PivotCache
ADODB.RecordSet
SourceType
DataTable