目次
今回は、エクセルでダイナミックチャートを作成する方法として ブイビーエー .
練習用ワークブックをダウンロードする
この練習用ワークブックをダウンロードして、この記事を読みながらエクササイズしてください。
Excelのダイナミックチャート.xlsmExcel VBAでダイナミックチャートを作成する5つの簡単な手順
というワークシートがあります。 シート1 を含むテーブルを含むものである。 収益 を、数年にわたり、企業収益に反映させています。
本日の目的は、「生成」です。 ダイナミックチャート この表からExcelを使って ブイビーエー .
⧪ ステップ1:Visual Basicウィンドウを開く
プレス ALT+F11 をキーボードで入力すると ビジュアルベーシック ウィンドウに表示されます。
⦹ ステップ2:新しいモジュールを挿入する
に行ってみてください。 挿入モジュール をクリックします。 モジュール という新しいモジュールが追加されました。 モジュール1 が挿入されます。
⦹ ステップ3:VBAのコードを配置する
これが最も重要なステップです。 以下のものを入れてください。 ブイビーエー モジュール内のコード。
⦹ VBAコードです。
Sub Create_Dynamic_Chart() Application.ScreenUpdating = False With ActiveSheet.Shapes(Application.Caller).Fill.ForeColor If .Brightness = 0 Then .Brightness = -0.150000006 Else .Brightness = 0 End If End With Dim Sequence() As String Desired_Shapes = Array("Rounded Rectangle 1", "Rounded Rectangle 2", "Rounded Rectangle 3") For i = LBound(Desired_Shapes) ToUBound(Desired_Shapes) With ActiveSheet.Shapes(Desired_Shapes(i)) If .Fill.ForeColor.Brightness = -0.150000006 Then Sequence(UBound(Sequence)) = .TextFrame2.TextRange.Characters.Text ReDim Preserve Sequence(UBound(Series) + 1) End If End With Next i If UBound(Sequence)> 0 Then ReDim Preserve Sequence(UBound(Sequence) - 1)Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter Field:=1 Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _ Field:=1, Criteria1:=Sequence, Operator:=xlFilterValues Application.ScreenUpdating = True End Sub.
⧪ ステップ 4: XLSM 形式でワークブックを保存します。
次に、ワークブックに戻り、保存したものを エクセルマクロ対応ワークブック .
⧪ ステップ5:最終出力
のコードを実行します。 Run Sub / UserForm をツールバーで選択します。
のテーブルを元に作成されたダイナミックチャートが表示されます。 シート2 ワークシートの
覚えておきたいこと
動的なチャートを作成するには、テーブルが最適です。 テーブルに要素を追加したり削除したりすると、テーブルが自動的に調整され、チャートも同様に調整されるからです。 しかし、これを実現する方法は他にもあります。 ネームドレンジ .