グラフの 作 成 と 操 作 現 場 で 測 定 されたデータを 見 える 化 (グラフ 化 )して 全 体 像 を 把 握 するためには グラフツールが 重 要 であり 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 プロパティの 設 定 定 数 一 覧 表 グラフの 種 類 設 定 定 数 集 合 縦 棒 xlcolumnclustered 積 み 上 げ 縦 棒 xlcolumnstacked 100% 積 み 上 げ 縦 棒 xlcolumnstacked100 集 合 横 棒 xlbarclustered 積 み 上 げ 横 棒 xlbarstacked 100% 積 み 上 げ 横 棒 xlbarstacked100 折 れ 線 xlline マーカー 付 き 折 れ 線 xllinemarkers 積 み 上 げ 折 れ 線 xllinestacked 100% 積 み 上 げ 折 れ 線 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 UCL= 5 4 4 X 3 X 3 CL= 3 2 2 1 1 LCL= 1 0 0 1 2 3 4 5 群 No. 0 0 1 2 3 4 5 群 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 xllabelpositioncenter 説 明 データ 要 素 の 上 にデータ ラベルを 配 置 します データ 要 素 の 下 にデータ ラベルを 配 置 します Microsoft Office Excel 2007 がデータ ラベルの 位 置 を 制 御 します データ 要 素 上 あるいは 横 棒 グラフまたは 円 グラフの 内 側 でデータ ラベルを 中 央 揃 えします 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 -