小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

VBAでグラフを表示する

EXCELでグラフを表示して見ましょう。

F3:J6にグラフのデータソースがあるとして、A1:D10にグラフを表示します。

以下は、そのサンプルです。

サンプル

    Range("F3").Value = "行列タイトル"
    Range("F4").Value = "行タイトル1"
    Range("F5").Value = "行タイトル2"
    Range("F6").Value = "行タイトル3"
    Range("G3").Value = "列タイトル1"
    Range("G4").Value = 2
    Range("G5").Value = 3
    Range("G6").Value = 4
    Range("H3").Value = "列タイトル2"
    Range("H4").Value = 2
    Range("H5").Value = 3
    Range("H6").Value = 4
    Range("I3").Value = "列タイトル3"
    Range("I4").Value = 2
    Range("I5").Value = 3
    Range("I6").Value = 4
    Range("J3").Value = "列タイトル4"
    Range("J4").Value = 2
    Range("J5").Value = 3
    Range("J6").Value = 4

    'グラフの表示位置を確定する。
    Dim ranPosi As Range
    Set ranPosi = Range("A1:D10") '*1
    
    'グラフの表示する。
    With ActiveSheet.ChartObjects.Add(Left:=ranPosi.Left, Top:=ranPosi.Top, _
                     Width:=ranPosi.Width, Height:=ranPosi.Height) '*2
         .Chart.ChartType = xlColumnStacked '*3
         .Chart.SetSourceData Source:=ActiveSheet.Range("F3:J6"), PlotBy:=xlRows ' *4
         .Chart.Location where:=xlLocationAsObject, Name:="Sheet1" '*5
         .Name = "グラフ01" '*6
    End With

   '表示したグラフの縦方向の軸名を設定する。
    ActiveSheet.ChartObjects("グラフ01").Activate '*7
    ActiveChart.ChartArea.Select '*8
    With ActiveChart
        .Axes(xlValue, xlPrimary).HasTitle = True '*9
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "台数" '*10
    End With

説明

  • *1、Rangeでグラフの表示位置を確定する。
  • *2、Addメソッドでグラフの追加する。引数は以下の通り。
    • Left:埋め込みグラフの左端位置の指定 [省略不可]
    • Top:埋め込みグラフの上端位置の指定 [省略不可]
    • Width:埋め込みグラフの幅の指定 [省略不可]
    • Height:埋め込みグラフの高さの指定 [省略不可]
  • *3、ChartTypeプロパティでグラフの種類(xlColumnStackedは、積み上げ縦棒)を設定する。
  • *4、SetSourceDataメソッドでデータソース範囲を設定する。
    • Source:グラフのデータソースがあるRange
    • PlotBy:データ系列の方向を指定(xlRowsは、行方向)
  • *5、Locationメソッドでグラフの場所を設定する。引数は以下の通り。
    • where:オブジェクトor新しいシート(xlLocationAsObjectは、オブジェクト)
    • Name:引数WhereがxlLocationAsObjectの場合、グラフを貼り付けるシート名。
  • *6、Nameプロパティは、グラフのオブジェクト名を設定する。
  • *7、グラフのオブジェクトをアクティブ
  • *8、グラフのオブジェクトをセレクト
  • *9、主軸数値軸(xlValue, xlPrimary)軸ラベル表示
  • *10、主軸数値軸(xlValue, xlPrimary)軸ラベル文字列設定