レポートで XL3SetProperty を使用する方法について説明します。
この例では、時間の経過に伴う「Products」と「Regions」に対する値のメジャーを保持するローカル キューブを使用します。ユーザーが行にどの階層を表示するか、またどの程度の詳細を表示するかを選択できるレポートが必要です。たとえば、その階層のメンバー、子、子孫をユーザーが知りたい場合があります。
行に「Product」と「Region」のいずれかがあるレポートをユーザーが実行できるようにします。スライサーの選択肢は状況に応じて変更させる必要があります。行に「Regions」があるレポートが実行される場合、スライサーの選択肢は「Region」のみに基づく必要があります。行に「Product」があるレポートが実行される場合、スライサーには「Product」の選択肢のみを表示する必要があります。
レポートは以下のとおりです。

- スライサーを作成して階層と詳細レベルを変更します。
- 行に表示される階層をユーザーが選択できるようにするスライサーを作成します。

- スライサーのソース範囲として範囲 K18:L19 を選択します。

- 最初の列の値で L31 を更新します。
- ユーザーが特定の地域を選択できるようにするスライサーを作成します。これにより、ユーザーの選択肢が L29 に配置されます。

- ユーザーが製品を選択できるようにするスライサーを作成します。
- ユーザーがメンバー レベル (メンバー、子、子孫など) を選択できるようにするスライサーを作成します。

- L13:L15をソースとして選択し、選択肢で L30 を更新します。
- XL3SetProperty を使用するオブジェクトに名前を付けます。たとえば、グリッド プロパティ画面でグリッドに「GridToSet」というタイトルを付けます。
- グリッドに「Region」と「Product」のスライサーの選択肢を追加します。次に、選択肢は XL3SetProperty 式によって更新されます。例の右下には、MemberSelectionType、HierarchiesOnRows、HierarchiesOnHeaders の各プロパティを更新する XL3SSetFormula プロパティ ステートメントがいくつかあります。
- MembSelType の設定 – 右側の二つのセルには XL3SetProperty 式があります。
- セル L21: ユーザーが最初のスライサーからこのオプションを選択した場合に、引数として「Region」を渡します。
=XL3SetProperty("Grid","GridToSet","MemberSelectionType","[Region]",IF(L31="[Region]", $L$30, "Member")) - セル M21: ユーザーが最初のスライサーからこのオプションを選択した場合に、引数として「Product」を渡します。
=XL3SetProperty("Grid","GridToSet","MemberSelectionType","[Product]",IF(L31="[Product]", $L$30, "Member"))
- セル L21: ユーザーが最初のスライサーからこのオプションを選択した場合に、引数として「Region」を渡します。
- 行の設定 - 右側のセルには XL3SetProperty 式があります。グリッドの行に表示される階層の引数として L31 の値を渡します。
=XL3SetProperty("Grid","GridToSet","HierarchiesonRows",$L$31) - ヘッダーの設定 - 右側のセルには XL3SetProperty 式があります。セル L32 と L33 の値をグリッドのヘッダー上の階層として渡します。
=XL3SetProperty("Grid","GridToSet","HierarchiesOnHeaders",$L$32,$L$33)
- MembSelType の設定 – 右側の二つのセルには XL3SetProperty 式があります。
- L32 には、行とヘッダーの値を入れ替える IF 関数が含まれています:
=IF(L31="[Product]","[Region]","[Product]")。
そのため、必要に応じて行に「Region」と「Product」のいずれかを表示できます。