グラフの作成と操作 目次

■グラフの作成と操作
現場で測定されたデータを見える化(グラフ化)して、全体像を把握するためには、グラフツールが
重要であり、Excel には有用なグラフツールが搭載されている。Excel VBA では、このグラフの操作を
取り扱うことができるステートメントが用意されているので、以下にその要点を解説する。
■目次
●グラフの作成
●グラフの種類と ChartType プロパティの設定定数一覧表
●散布図の打点にラベルを付与
●グラフ
データ系列の追加
●グラフの基点変更
●グラフの完成
●グラフのコピー
●参考情報
-1-
●グラフの作成
タイトルを含めたデータの範囲と系列の設定をしてグラフを作成する。
*データ範囲の設定
・データ範囲
→タイトルを含む
・SetSourceData:=データ範囲
*系列の指定
・引数 PlotBy:= xlColumns
→系列として列を指定
・引数 PlotBy:= xlRows
→系列として行を指定
Sub 棒グラフの作成()
Dim データ範囲 As Range
Set データ範囲 = Range(Cells(4,2), Cells(11,3))
‘→ データ範囲の設定
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
‘→グラフの種類の設定 →棒グラフ
ActiveChart.SetSourceData Source:=データ範囲, PlotBy:=xlColumns
‘→ 系列=列
End Sub
*グラフの作成の Excel 資料は、 グラフの作成 を参照のこと。
●グラフの種類と ChartType プロパティの設定定数一覧表
グラフの種類
集合縦棒
積み上げ縦棒
100%積み上げ縦棒
集合横棒
積み上げ横棒
100%積み上げ横棒
折れ線
マーカー付き折れ線
積み上げ折れ線
100%積み上げ折れ線
円
散布図
バブル
面
ドーナツ
等高線
株価チャート
円柱
円錐
ピラミッド
設定定数
xlColumnClustered
xlColumnStacked
xlColumnStacked100
xlBarClustered
xlBarStacked
xlBarStacked100
xlLine
xlLineMarkers
xlLineStacked
xlLineStacked100
xlPie
xlXYScatter
xlBouble
xlArea
xlDoughnut
xlSerface
xlStockHLC
xlCylinderColClustered
xlConeColColClustered
xlPyramidColColClustered
-2-
●散布図の打点にラベルを付与
散布図を作成した場合に、その打点にラベルを付与したいニーズがある。
Microsoft Excel には散布図の打点のデータ ポイントに自動的にテキストラベルを付ける組み込み
コマンドはないが、Microsoft サポートとして、下記の資料が公開されているので参照のこと。
Excel 統計講座では、新 QC 七つ道具であるマトリックス・データ解析(主成分データ分析)の主成
分得点グラフ(散布図)の作成にて活用されている。
★Microsoft サポート
散布図のデータ ポイントにラベルを追加するマクロは次の通りである。
→ https://support.microsoft.com/ja-jp/kb/161513 参照
Microsoft Excel には、散布図のデータ ポイントに自動的にテキスト ラベルを付ける組み込み
コマンドはないが、この処理を実行する Microsoft Visual Basic for Applications (VBA) マクロを
作成することができる。この資料にはこの処理を実行するサンプル マクロが記載されている。
*散布図の打点にラベルを付与に関する Excel 資料は、 ラベル付き散布図 を参照のこと。
-3-
●グラフの打点にラベルとデータの付与
統計的品質管理のプログラミングでは、グラフの打点にラベルとデータを付与するニーズがある。
グラフの打点にラベルを付けるには、Point.ApplyDataLabels メソッドが使われる。
このメソッドについて、模擬的な X 管理図の例で以下に解説する。
★対象のグラフ
ラベルなし
ラベル付き
X 管理図
X 管理図
6
6
5
5
4
4
X 3
X 3
2
2
1
1
0
0
0
1
2
3
4
UCL= 5
CL= 3
LCL= 1
0
5
1
2
3
4
5
群No.
群No.
★プログラム VBA
上のグラフには、3 つの系列があり、
系列 1 → LCL
系列 2 → CL
系列 3 → UCL である。
各系列のデータポイント(5)に系列名とデータ(X)の値を記入するプログラムの例である。
グラフを選択してから、次のプログラム LABEL()を実行すると、上図のように、管理図の中心線 CL,
管理限界線 LCL,UCL に、ラベルとデータが付与される。
*グラフの打点にラベルを付与する Excel プログラムは、 グラフのラベル付加 を参照のこと。
Sub LABEL()
'中心線 Cl、管理限界線 LCL,UCL にラベルとデータを記入
Dim K As Integer 'k:群の数
K=5
'LCL →系列(1)のデータポイント(k=5)に系列名とデータを記入する。
ActiveChart.SeriesCollection(1).Points(K).ApplyDataLabels
ActiveChart.SeriesCollection(1).Points(K).DataLabel.Select
Selection.ShowSeriesName = True
‘→系列名(LCL)を表示する。
Selection.ShowValue = True
‘→系列(1)のデータポイント(5)の値を表示する。
Selection.Separator = "="
‘→系列名と値の仕切り記号”=”を表示する。
Selection.Position = xlLabelPositionRight
‘→打点の右側にデータラベルを配置
'CL
ActiveChart.SeriesCollection(2).Points(K).ApplyDataLabels
ActiveChart.SeriesCollection(2).Points(K).DataLabel.Select
Selection.ShowSeriesName = True
‘→系列名(CL)を表示する。
Selection.ShowValue = True
‘→系列(2)のデータポイント(5)の値を表示する。
Selection.Separator = "="
‘→系列名と値の仕切り記号”=”を表示する。
Selection.Position = xlLabelPositionRight
‘→打点の右側にデータラベルを配置
'UCL
ActiveChart.SeriesCollection(3).Points(K).ApplyDataLabels
ActiveChart.SeriesCollection(3).Points(K).DataLabel.Select
Selection.ShowSeriesName = True
‘→系列名(UCL)を表示する。
Selection.ShowValue = True
‘→系列(3)のデータポイント(5)の値を表示する。
Selection.Separator = "="
‘→系列名と値の仕切り記号”=”を表示する。
Selection.Position = xlLabelPositionRight
‘→打点の右側にデータラベルを配置
End Sub
-4-
★データラベルの配置位置
データ ラベルが配置される位置は、Excel VBA ヘルプより、次のように指定できる。
ActiveChart.SeriesCollection(3).Points(K).ApplyDataLabels
ActiveChart.SeriesCollection(3).Points(K).DataLabel.Select
Selection.Position = xlLabelPositionRight
名
前
説
明
xlLabelPositionAbove
データ要素の上にデータ ラベルを配置します。
xlLabelPositionBelow
データ要素の下にデータ ラベルを配置します。
xlLabelPositionBestFit
Microsoft Office Excel 2007 がデータ ラベルの位置を制御します。
xlLabelPositionCenter
データ要素上あるいは横棒グラフまたは円グラフの内側でデータ
ラベルを中央揃えします。
xlLabelPositionCustom
カスタムの位置にデータ ラベルを配置します。
xlLabelPositionInsideBase
データ要素下端の内側にデータ ラベルを配置します。
xlLabelPositionInsideEnd
データ要素上端の内側にデータ ラベルを配置します。
xlLabelPositionLeft
データ要素の左側にデータ ラベルを配置します。
xlLabelPositionMixed
複数の位置にデータ ラベルを配置します。
xlLabelPositionOutsideEnd
データ要素上端の外側にデータ ラベルを配置します。
xlLabelPositionRight
データ要素の右側にデータ ラベルを配置します。
-5-
●グラフ
データ系列の追加
パレート図は、棒グラフと折線グラフを組み合わせたグラフであり、グラフには複数の系列がある場
合がある。系列は Series オブジェクトで表され、Series オブジェクトの集合体が SeriesCollection(コ
レクション)であり、SeriesCollection(コレクション)はデータ系列を表す。
パレート図の場合は、系列 1(コレクション 1)として、不適合品数の棒グラフを作成し、その後、
系列 2(コレクション 2)として、累積百分率の折線グラフを作成する必要がある。
系列 1 の不適合品数の棒グラフに、系列 2 の累積比率の折線グラフと第 2 軸を追加するプログラム
VBA を以下に示す。
Sub 系列 2 の追加()
'累積百分率のグラフ追加 →系列2:累積百分率の折れ線グラフの追加
ActiveChart.SeriesCollection.NewSeries
'→新しい系列の追加 →系列 2
ActiveChart.SeriesCollection(2).Name = Cells(4, 6)
'→累積百分率
ActiveChart.SeriesCollection(2).Values = Range(Cells(5, 6), Cells(11, 6))
ActiveChart.SeriesCollection(2).XValues = Range(Cells(5, 2), Cells(11, 2))
'第 2 軸の追加
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).AxisGroup = xlSecondary
'→第 2 軸の追加
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ChartType = xlLineMarkers
'→折線グラフ
End Sub
詳細は、 → グラフの系列追加 を参照のこと。
-6-
●グラフの基点変更
左下の折線グラフ(累積比率)は、原点からスタートしていないので、折線グラフ(累積比率)のデ
ータの選択範囲を変更し、折線グラフの基点を変更し、右下のように、折線グラフが原点からスタート
するグラフを作成する。この方法は、パレート図の作成に展開することができる。
折れ線グラフの基点変更に関する VBA コードは次のとおりである。
Sub 基点変更()
'折線グラフのデータ範囲の変更 →タイトルを含めたデータ範囲を選択
ActiveChart.SeriesCollection(2).Values = Range(Cells(4, 6), Cells(11, 6))
ActiveChart.SeriesCollection(2).XValues = Range(Cells(4, 2), Cells(11, 2))
'折線グラフの第 2 横軸を表示にする
ActiveChart.SetElement (msoElementSecondaryCategoryAxisShow)
'項目軸(横軸)の基点変更
ActiveChart.Axes(xlCategory, xlSecondary).Select
ActiveChart.Axes(xlCategory, xlSecondary).AxisBetweenCategories = False
'折線グラフの第 2 横軸を非表示にする
ActiveChart.SetElement (msoElementSecondaryCategoryAxisWithoutLabels)
'累積比率の縦軸の表示を小数点以下 0 桁の%表示とする
ActiveChart.Axes(xlValue, xlSecondary).Select
Selection.TickLabels.NumberFormatLocal = "0%"
End Sub
詳細は、 → グラフの基点変更 を参照のこと。
-7-
●グラフの完成
上記の手順で作成した各種類のグラフに次の操作を行いクラフとして完成する。
・凡例の削除
・グラフのタイトルの設定
・グラフの軸ラベルの設定
・軸のスケールの変更
具体的な手順と VBA コードについては、QC 七つ道具の代表的なグラフであるパレート図を対象に
して次の資料にて解説する。
★パレート図の作成手順
次の手順を実行することにより、正式なパレート図として完成される。
*不適合品数の棒グラフの作成
*累積百分率の折線グラフの作成
*折線グラフの基点変更
*縦軸の目盛線 → 消去
*凡例の削除
*不適合品数の棒グラフ
・間隔=0
・枠線の色 → 黒
*累積百分率の折れ線グラフ
・打点のマーク変更
■ → ●
*軸のスケール 最大値の変更
・主縦軸
不適合品数 250 → 合計 512
・第2縦軸 累積百分率 1.2 → 100%
*グラフのタイトル → 「パレート図」
*軸ラベル
・主縦軸
→ 「不適合品数」
・第2縦軸 → 「累積百分率」
*データ数の記入 → n=512
→詳細な Excel 資料は パレート図の作成
を参照のこと。
●グラフのコピー
完成されたグラフは、同一シート又は別シートの適切な位置にコピー又は移動することができる。
→具体的な Excel 資料は、グラフのコピーと移動
を参照のこと。
●参考情報
その他の詳細なグラフの操作に関しては、下記の資料を参照のこと。
*Excel VBA@Workshop
http://excel.style-mods.net/tips_vba/tips_vba_6_01.htm
-8-