Excel VBA グラフの編集

スポンサーリンク

作成したグラフを編集する方法

作成したグラフのタイトルや軸、凡例などのグラフの各要素の設定変更などを行うには、グラフの各要素のオブジェクトを取得する必要があります。

ここでは、グラフの種類変更、グラフ要素の編集、グラフのスタイル、レイアウトなどのグラフの編集についての説明をします。

グラフ各要素を表す主なオブジェクト一覧

オブジェクト内容
Series【シリーズ】グラフのデータ系列を表します。
Axis【アクシス】グラフの数値軸の目盛やラベルを表します。
ChartTitle【チャートタイトル】グラフのタイトルを表します。
Legend【レジェンド】グラフの凡例を表します。

グラフ要素の取得または、設定する主なプロパティ一覧

プロパティ内容
ChartType【チャートタイプ】グラフの種類の取得または、設定をします。
AxisGroup【アクシスグループ】指定した系列のグループを取得または、設定します。
ChartTitle【チャートタイトル】グラフのタイトルを表す
ChartTitle【チャートタイトル】オブジェクトを取得します。
Legend【レジェンド】グラフの凡例を表す
Legend【レジェンド】オブジェクトを取得します。

グラフ要素の操作をする主なメソッド一覧

メソッド内容
SeriesCollection【シリーズコレクション】データ系列を表す
Series【シリーズ】オブジェクトを取得します。
Axes【アクシズ】単一の軸を表す
Axes【アクシス】オブジェクトを取得します。

ChartType【チャートタイプ】プロパティ

グラフの種類を変更するには、グラフシートを表すChart【チャート】オブジェクトまたは、埋め込みグラフを表すChartObject【チャートオブジェクト】オブジェクトのChartType【チャートタイプ】プロパティを使用します。値の取得と設定ができます。

ChartType【チャートタイプ】プロパティの書式と設定値の説明

【取得】
オブジェクト.ChartType
【設定】
オブジェクト.ChartType = 設定値

※複合グラフを作成する場合は、データ系列を表すSeries【シリーズ】オブジェクトを対象にChartType【チャートタイプ】プロパティを設定し、指定したデータ系列だけグラフの種類を変更して作成します。


SeriesCollection【シリーズコレクション】メソッド

グラフのデータ系列を表す、Series【シリーズ】オブジェクトを取得するには、SeriesCollection【シリーズコレクション】メソッドを使用します。

SeriesCollection【シリーズコレクション】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.SeriesCollection( [Index] )

  • オブジェクト(必須)
    グラフシートを表すCharts【チャーツ】プロパティで参照したChart【チャート】オブジェクトまたは、埋め込みグラフを表す
    ChartObject【チャートオブジェクト】オブジェクトを指定します。
  • 設定値(省略可)
    データ系列の名前または、インデックス番号を指定します。省略した場合は、すべてのデータ系列であるSeriesCollection【シリーズコレクション】コレクションが取得されます。

AxisGroup【アクシスグループ】プロパティ

指定した系列のグループを取得または、設定するのは、AxisGroup【アクシスグループ】プロパティを使用します。値の取得および設定が可能です。

AxisGroup【アクシスグループ】プロパティの書式と設定値の説明

【取得】
オブジェクト.AxisGroup
【設定】
オブジェクト.AxisGroup = 設定値

  • オブジェクト(必須)
    SeriesCollection【シリーズコレクション】メソッドで取得したグラフのデータ系列を表すSeries【シリーズ】オブジェクトを指定します。
  • 設定値(省略可)
    軸グループの種類を表す、XlAxisGroup 列挙型の定数を指定します。

    XlAxisGroup 列挙型の定数
    定数内容
    xlPrimary【プライマリー】1主軸 (下/左側) グループ(既定値)
    xlSecondary【セカンダリー】2第 2 軸 (上/右側) グループ
    ※3Dグラフは不可

「合計」系列を折れ線グラフに変更するコード例

Sub 埋め込みグラフ3()
Dim R As Range
Set R = Range("A7:E14")
With Sheets("売上").ChartObjects.Add(R.Left, R.Top, R.Width, R.Height)
.Name = "売上グラフ"
.Chart.SetSourceData Range("A1:E5")
End With
With Sheets("売上").ChartObjects("売上グラフ").Chart.SeriesCollection("合計")
.ChartType = xlLineMarkers
.AxisGroup = xlSecondary
End With
End Sub

実行結果


Axes【アクシズ】メソッド

グラフの数値軸や項目軸に軸ラベルや目盛などを設定するには、Axes【アクシズ】メソッドを使用して単一の軸を表すAxes【アクシス】オブジェクトを取得しAxes【アクシズ】オブジェクトを操作します。

Axes【アクシズ】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.Axes( [Type, AxisGrop] )

  • オブジェクト(必須)
    グラフシートを表すCharts【チャーツ】プロパティで参照したChart【チャート】オブジェクトまたは、埋め込みグラフを表すChartObject【チャートオブジェクト】オブジェクトを指定します。
  • Type【タイプ】(省略可)
    xlAxisType列挙型の定数で軸の種類を指定します。

    xlAxisType列挙型の定数
    定数内容
    xlCategory【カテゴリー】1項目軸
    xlValue【バリュー】2数値軸
    xlSeriesAxis【シリーズアクシス】3系列軸
    ※3Dグラフ時のみ使用可能
  • AxisGroup【アクシスグループ】(省略可)
    XlAxisGroup 列挙型の定数で軸のグループを指定します。

    XlAxisGroup 列挙型の定数
    定数内容
    xlPrimary【プライマリー】1主軸 (下/左側) グループ(既定値)
    xlSecondary【セカンダリー】2第 2 軸 (上/右側) グループ
    ※3Dグラフは不可

Axis【アクシス】オブジェクトの主なプロパティ一覧

プロパティ内容
HasTitle【ハズタイトル】タイトルの表示(True)非表示(False)
を設定します。
AxisTitle【アクシスタイトル】軸ラベルを表す、AxisTitleオブジェクト
を取得します。
HasMajorGridLines
【ハズメジャーグリッドラインズ】
主軸の目盛線の表示(True)非表示(False)
を指定します。
TickLabels【チックラベルズ】軸の目盛ラベルを表す、TickLabelsオブジェクト
を取得します。
MaximumScale【マックスイナムスケール】数値軸の最大値を設定します。
MinimumScale【ミニマムスケール】数値軸の最小値を設定します。
MajorUnit【メジャーユニット】目盛間隔を設定します。

※軸ラベルを設定するにはHasTaitle【ハズタイトル】プロパティを表示(True)に設定する必要があります。


ChartTitle【チャートタイトル】プロパティ

グラフのタイトルを表す、ChartTitleオブジェクトを取得するには、
ChartTitle【チャートタイトル】プロパティを使用します。

ChartTitle【チャートタイトル】プロパティの書式と設定値の説明

オブジェクト.ChartTitle

ChartTitle【チャートタイトル】オブジェクトの主なプロパティ一覧

プロパティ内容
Text【テキスト】タイトル文字列を設定します。
Font【フォント】タイトルのフォントを設定します。
Orientation【オリエンテーション】タイトルの角度を設定します。
プロパティ値には、-90 ~ 90 度の整数値または
XIOrientation 列挙型の定数値を指定します。
Border【ボーダー】タイトルの枠線を設定します。
Left【レフト】タイトルの左端からの位置
Top【トップ】タイトルの上端からの位置
Shadow【シャドー】タイトルの影を表示する場合はTrueを指定します。

XIOrientation 列挙型の定数
定数内容
xlDownward【ダウンワード】-90度(下向き)
xlHorizontal【ホリゾンタル】0度(水平方向)(既定値)
xlUpward【アップワード】90度(上向き)
xlVertical【バーティカル】縦書き

埋め込みグラフにタイトルと軸タイトルを表示するコード例

Sub 埋め込みグラフ3()
Dim R As Range
Set R = Range("A7:E14")
  With Sheets("売上").ChartObjects.Add(R.Left, R.Top, R.Width, R.Height)
   .Name = "売上グラフ"
   .Chart.SetSourceData Range("A1:E5")
 End With
 With Sheets("売上").ChartObjects("売上グラフ").Chart.SeriesCollection("合計")
   .ChartType = xlLineMarkers
   .AxisGroup = xlSecondary
 End With
 With Sheets("売上").ChartObjects("売上グラフ").Chart.Axes(xlValue)
   .HasTitle = True
   .AxisTitle.Text = "売上額(円)"
   .AxisTitle.Orientation = xlVertical
 End With
 With Sheets("売上").ChartObjects("売上グラフ").Chart
  .HasTitle = True
  .ChartTitle.Text = "店舗別売上グラフ"
  .ChartTitle.Font.Size = 11
 End With
End Sub

実行結果


Legend【レジェンド】プロパティ

グラフの凡例を表す、Legend【レジェンド】オブジェクトを取得するには、Legend【レジェンド】プロパティを使用します。取得したLegend【レジェンド】オブジェクトに対して、凡例の書式などの各種設定を行います。

Legend【レジェンド】プロパティの書式と設定値の説明

オブジェクト.Legend

Legend【レジェンド】オブジェクトの主なプロパティ

プロパティ内容
HasLegend【ハズレジェンド】凡例を表示する場合はTrue
非表示の場合はFalseを指定します。
Position【ポジション】凡例の表示位置をxlLegendposition列挙型の
定数で指定します。

xlLegendposition列挙型の定数
定数内容
xlLegendpositionTop
xlLegendpositionBottom
xlLegendpositionLeft
xlLegendpositionRight
xlLegendpositionCorner右上隅

以上で、グラフの編集についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告