0

「(空白)」アイテムの選択解除を記録すると、すべてのアイテムが明示的に言及されます。

ActiveChart.PivotLayout.PivotTable _
.PivotFields("[Table1].[Field1].[Field1]").VisibleItemsList = _
                                           Array("[Table1].[Field1].&[Item1]", _
                                                 "[Table1].[Field1].&[Item2]", _
                                                 "[Table1].[Field1].&[Item3]", _
                                                 "[Table1].[Field1].&[Item4]", _
                                                 "[Table1].[Field1].&[Item5]", _
                                                 "[Table1].[Field1].&[Item6]")

しかし、私はそれらを事前に知らないので(そしてそれらはデータモデルに配置されているため)、アイテムについて言及することはできません.

コードは次の行に沿っている必要があります。

With ActiveChart.PivotLayout.PivotTable 
    .PivotFields("[Table1].[Field1].[Field1]").VisibleItemsList = Array("")
    .PivotFields("[Table1].[Field1].[Field1]").PivotItems("(blank)").Visible = False
End With 

編集:どうやら、.PivotItems("(blank)").Visible = False私が必要とすることを正確に行う必要がありますが、そうではありません...(ランタイム '1004': PivotField クラスの PivotItems プロパティを取得できません)

4

1 に答える 1

1

解決策/回避策を見つけました:

    Dim PivItem            As PivotItem
    Dim PivFieldsArray()   As Variant
    Dim i                  As Integer

    With ActiveChart.PivotLayout.PivotTable.PivotFields("[Table1].[Field1].[Field1]")
        For Each PivItem In .PivotItems
            ReDim Preserve PivFieldsArray(0 To i)
            If PivItem.name <> "[Table1].[Field1].&" Then
                PivFieldsArray(i) = PivItem.name
                i = i + 1
            End If
        Next
        .VisibleItemsList = PivFieldsArray
    End With
于 2016-09-16T20:57:55.803 に答える