2

Pivot Double Click イベントをキャプチャする方法はありますか? (別シートにDetail Viewを生成するイベント。)

選択したピボットのデータソース全体をデータテーブルとして表示する方法はありますか?

C#、VSTO プログラミングを使用しています。

4

2 に答える 2

1

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
于 2012-06-04T21:27:37.053 に答える
0

RangeオブジェクトのShowDetailプロパティに興味があると思います。

データセット全体を取得するにDataBodyRangeは、ピボット テーブルの に対してこのプロパティを設定できます。

Excel.PivotTable pivotTable = (Excel.PivotTable)Globals.Sheet3.PivotTables(1);
pivotTable.DataBodyRange.ShowDetail = true;

編集:コメントごとに、ピボットテーブルがレンダリングするデータセットが必要な場合は、 を使用してPivotCacheを決定SourceTypeし、 のタイプに応じてデータを逆に取得するメソッドを作成する必要がありSourceTypeます。に関係なくを返すPivotTableorのプロパティはありません。.NETはなおさらです。PivotCacheADODB.RecordSetSourceTypeDataTable

于 2012-06-04T22:48:13.783 に答える