レポートで 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"))
    • 行の設定 - 右側のセルには XL3SetProperty 式があります。グリッドの行に表示される階層の引数として L31 の値を渡します。
      =XL3SetProperty("Grid","GridToSet","HierarchiesonRows",$L$31)
    • ヘッダーの設定 - 右側のセルには XL3SetProperty 式があります。セル L32 と L33 の値をグリッドのヘッダー上の階層として渡します。
      =XL3SetProperty("Grid","GridToSet","HierarchiesOnHeaders",$L$32,$L$33)
  • L32 には、行とヘッダーの値を入れ替える IF 関数が含まれています: =IF(L31="[Product]","[Region]","[Product]")

そのため、必要に応じて行に「Region」と「Product」のいずれかを表示できます。