変更は、選択したセルごとにデータをグラフ
選択したオプションに従ってデータを変更するグラフを使用してダッシュボードを作成する場合は、VBAのイベントを使用できます。はい、できます。ドロップダウン、スライサー、またはコンボボックスは必要ありません。セルをクリック可能にし、データを変更して、選択したセルからグラフを作成します。
以下の手順に従って、セルの選択に従って変化するExcelの動的グラフを作成します。
ステップ1:チャートのソースとしてシートのデータを準備します。
ここに、シート内のさまざまな地域からのサンプルデータがいくつかあります。ソースデータと名付けました。
ステップ2:別のシートで一度に1つの地域のデータを取得します。
-
新しいシートを挿入します。適切な名前を付けます。私はそれを「ダッシュボード」と名付けました。
-
すべての月を1つの列にコピーします。月の横に1つの地域の名前を記入します。
-
ここで、セルD1の領域のデータを取得します。 D1で領域が変化すると、データも変化するようにします。そのために、 `link:/ lookup-formulas-vlookup-with-dynamic-col-index [Two WayLookup]`を使用できます。
私のソースデータはソースデータシートのA2:D8にあるので。以下の式を使用します。
= Data’!$A$2:$D$8, Data’!$A$1:$D$1,0)) |
ここでは、VLOOKUPに動的な列インデックスを使用しています。それについては `link:/ lookup-formulas-vlookup-with-dynamic-col-index [here]`を読むことができます。
-
ダッシュボードシートにこのデータを使用してグラフを挿入します。単純な折れ線グラフを使用します。グラフを表示したくない場合は、グラフのソースを非表示にします。
D1で地域名を変更すると、それに応じてグラフも変更されます。次のステップは、指定されたセルからオプションを選択するときに、D1のリージョン名を変更することです。
手順3:指定した範囲の地域名を選択して地域を変更します。 *すべての地域の名前を範囲内に記述します。範囲A2:A4に記述します。
-
ダッシュボードシート名を右クリックし、[コードの表示]をクリックします
`link:/ events-in-vba-the-worksheet-events-in-excel-vba [worksheet event]`を使用できるように、VBEのワークシートモジュールに直接入力するオプション。
-
VBエディターで以下のコードを記述します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("A2:A4")) Is Nothing Then Range("A2:A4").Interior.ColorIndex = xlColorIndexNone Dim region As Variant region = Target.value On Error GoTo err: Select Case region Case Is = "Central" Range("D1").value = region Case Is = "East" Range("D1").value = region Case Is = "West" Range("D1").value = region Case Else MsgBox "Invalid Option" End Select Target.Interior.ColorIndex = 8 End If err: End Sub
そして、それは行われます。これで、範囲A2:A4のセルを選択すると、その値がD1に割り当てられ、それに応じてグラフのデータが変更されます。
このコードがどのように機能するかを以下で説明しました。あなたはそれを理解し、あなたの要件に従って変更を加えることができます。この例でここで使用したトピックを支援するためのリンクを提供しました。だからそれらをチェックしてください。
コードはどのように機能していますか?
ここでは、 link:/ events-in-vba-the-events-in-excel-vba [Excelのイベント]`を使用しました。 `link:/ events-in-vba-the-worksheet-events-in-excel-vba [worksheet event]
“SelectionChange”を使用してイベントをトリガーしました。
If Not Intersect(Target, Range("A2:A4")) Is Nothing Then
この行は、フォーカスを範囲A2:A4に設定して、選択範囲が範囲A2:A4にある場合にのみSelectionChangeイベントが発生するようにします。 IfとEndの間のコードは、選択範囲がA2:A4の場合にのみ実行されます。これで、チャートを動的にするための要件に従って設定できます。
Range("A2:A4").Interior.ColorIndex = xlColorIndexNone
この行は、範囲A2:A4の色をゼロに設定します。
region = Target.value On Error GoTo err:
上記の2行では、可変領域で選択されたセルの値を取得し、発生したエラーを無視します。発生したエラーを無視することが確実になるまで、「On Error GoToerr:」という行を使用しないでください。複数のセルを選択したときのエラーを回避するために使用しました。
Select Case region Case Is = "Central" Range("D1").value = region Case Is = "East" Range("D1").value = region Case Is = "West" Range("D1").value = region Case Else MsgBox "Invalid Option" End Select
上記の行では、excels `link:/ general-topics-in-vba-vba-select-case-alternative-of-nested-if-else-if-statements [Select CaseStatement]`を使用して値を設定しています。範囲D1の。
Target.Interior.ColorIndex = 8 End If err: End Sub
End Ifステートメントの前に、選択したオプションの色を変更して、強調表示されるようにします。次に、Ifステートメントが終了し、err:タグが開始します。
selectステートメント中にエラーが発生した場合、OnErrorステートメントはこのタグにジャンプします。
以下の作業ファイルをダウンロードしてください。
関連記事:
link:/ events-in-vba-chart-object-events-using-vba-in-microsoft-excel [MicrosoftExcelでVBAを使用した埋め込みグラフイベント]
* |埋め込まれたチャートイベントは、チャートを通常のチャートよりもインタラクティブで動的、そして便利にすることができます。チャートでイベントを有効にするには…
link:/ events-in-vba-the-events-in-excel-vba [ExcelVBAのイベント]
| * Excelには7種類のイベントがあります。各イベントは異なる範囲を扱います。アプリケーションイベントは、ワークブックレベルで扱います。シートレベルのワークブック。範囲レベルのワークシートイベント。
link:/ events-in-vba-the-worksheet-events-in-excel-vba [ExcelVBAのワークシートイベント]
* |ワークシートイベントは、指定されたイベントが発生したときにマクロを実行する場合に非常に便利です。シート。
link:/ events-in-vba-workbook-events-using-vba-in-microsoft-excel [MicrosoftExcelでVBAを使用するブックイベント]
|ブックイベントは、ブック全体で機能します。すべてのシートがワークブックの一部であるため、これらのイベントもそれらに作用します。
link:/ events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [MicrosoftExcelでVBAを使用してautomacro / eventmacroが実行されるのを防ぐ]
* | auto_openマクロの実行を防ぐには、Shiftキーを使用します。
link:/ events-in-vba-chart-object-events-using-vba-in-microsoft-excel [MicrosoftExcelでVBAを使用してオブジェクトイベントをグラフ化する]
* |チャートは複雑なオブジェクトであり、それらにアタッチしたコンポーネントがいくつかあります。チャートイベントを作成するには、クラスモジュールを使用します。
人気の記事:
link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット]
|あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。
link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数]
|これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。
link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
|この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。
ダッシュボードを準備するには、Countif関数が不可欠です。
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]
|これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。