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 右上隅

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

スポンサーリンク

関連記事・広告