マクロを使ったグラフの選択表示

こんにちは、こーです。

今回はQlikView(クリックビュー)でマクロを使い、選択した項目のみ色を変更する方法をご紹介していきます。

実装することによって、今、何を選択しているのかが直感的に分かります。

 

では、ご紹介していきます。

今回はこちらで用意したデータを使いますので、以下からダウンロードをしてください。

 

Qlikviewを開きます。

ロードスクリプトを開きます。

【テーブルファイル】から、ダウンロードした「売上情報」を読み込みます。

 

キャプチャ_Redeem

 

 

読み込みが完了したら、リロードをします。

 

最初に変数とマクロを設定します。

【変数一覧】を選択し、2つの変数を追加します。

1つ目…vMonth

2つ目…vString

どちらも定義は未記入で構いません。

【OK】を押します。

この変数はマクロを設定するときに使います。

 

キャプチャ7

 

次にトリガーを設定します。

【ドキュメントプロパティ】を開き、【トリガー】に移動します。

【項目イベント トリガー】から、「月」を選択して【アクションの追加】をします。

 

キャプチャ8

 

【追加】を押して、アクションの追加をしていきます。

 

キャプチャ10

 

【その他】から【変数の設定】を選びます。

【OK】を押します。

 

キャプチャ11

 

変数を以下に定義します。

変数名…vMonth

値…=Max(日付)

 

キャプチャ12

 

次にマクロの設定をします。

【追加】を押して、【アクションの追加】から【その他】を選択します。

【アクション】から【マクロの実行】を選択します。

【OK】を押します。

 

キャプチャ13

 

【マクロ名】を以下にします。

マクロ名…MakeList

 

【モジュールの編集】を押します。

 

キャプチャ14

 

マクロに以下の構文を追加します。

Sub MakeList

str = “”
maxvalue = ActiveDocument.Variables(“vMonth”).GetContent.String
for counter = 1 to maxvalue
str = str & “,” & counter
next

ActiveDocument.Variables(“vString”).SetContent str, true
End Sub

 

【構文チェック】をして、エラーがなければ、【OK】を押します。

このマクロでは、選択した項目を変数に入れています。

 

キャプチャ15

 

変数とマクロの設定が完了しました。

 

チャートを作成していきます。

最初にリストボックスを作成します。

【リストボックスの追加】から、「月」を選択します。

【OK】を押します。

 

キャプチャ2

 

リストボックスが完成しました。

 

キャプチャ3

 

続いてチャートを作成します。

【シートオブジェクトの追加】から【チャート】を選択します。

【棒グラフ】を選択します。

 

キャプチャ4

 

【項目/グループ】から【月】を選択し、【軸項目】へ追加します。

 

キャプチャ5

 

数式を追加します。

【ラベル】は「空白(スペース)」にして、【定義】を以下にします。

sum({<月=, 日付=>}売上金額)

 

キャプチャ6

 

【背景色】に以下の数式を入れます。

=if (SubStringCount(vString, 日付) > 0, rgb(0,255,0), rgb(255,0,0))

 

RGBは任意の色で構いません。

※この数式では、選択した項目をRGBで設定した色にして、それ以外は別の色を表示するようにしています。

【OK】を押します。

 

キャプチャ16

 

これで完成です。

選択した「6月」の項目が緑色になり、選択していない項目は赤色になっていることが確認できます。

 

キャプチャ17

 

 

今回は棒グラフを使って説明させていただきましたが、この記事は他のチャートでも使うことができます。

是非、活用してみてください。

【折れ線グラフ】

 

キャプチャ18

 

【レーダーチャート】

 

キャプチャ19

 

 

 

 

 

QlikViewを体験してみませんか?

アイウェイズコンサルティングでは毎月QlikViewの無料ハンズオンセミナーを開催しています。 初めてQlikViewをご利用される方を対象に、QlikViewって何?ってところからQlikViewと他のBIとの違いについてもわかりやすくご説明させて頂いております。