2011/09/13

Excelのセルの値でグラフを編集!

Excelのセルの値でグラフを編集するマクロを公開しています.

Excel Chart Series Editor : VBAマクロ

エクセルのグラフは簡単に作れて便利ですが,データが大きくなると編集が大変です.同じグラフにたくさんの系列を載せたい場合,いちいちデータの選択をしていては時間がかかりすぎてしまいます.そこで,系列情報をあらかじめ用意してそれを元に一気に作成できるマクロを用意しました.

Excelシートの各行が1つのグラフ情報・グラフ系列情報を表すデータとみなし, 当該データとグラフ情報・グラフ系列情報との変換・逆変換を行ことができます.
グラフ情報はChartDataシートに作成され,グラフ系列情報はSeriesDataシートに作成されます.
これらの名前に一致するシートが存在しない場合は,いずれかのマクロを実行すると,新たにシートが作成されます.
また,一致する名前のラベルが存在しない場合は,いずれかのマクロを実行すると,対応するシートに自動的にラベルが作成されます.
対応するシートの最上行はラベルです.

  ※一致する名前のラベルが存在しない場合は,いずれかのマクロを実行すると,対応するシートとラベルが自動的に作成されます.

  ※Excelシートの最上行はラベルで,ラベル名・ラベルの存在する行を変更すると対応関係が崩れますが,
    各列の順序等は変更しても問題なく動作します.よって,メモなどを間に挟むことも可能です.


公開しているマクロは「グラフ情報・グラフ系列情報」の「変換・逆変換」に対応した以下の4つです.
マクロ名 説明
ActionUpdateChartData_
グラフレイアウト情報取得
同一ワークブック内のすべてのグラフについて, グラフレイアウト情報をChartDataシート上のラベルに対応したセルに入力します.
ActionReMakeChart_
グラフレイアウト更新
ChartDataシート上のラベルに対応したセルに入力されたデータを元にグラフレイアウトを更新.
ActionUpdateChartSeriesData_
グラフ系列情報取得
同一ワークブック内のすべてのグラフ系列についての情報を SeriesDataシート上のラベルに対応したセルに入力します.
ActionReMakeChartSeries_
グラフ系列作成
SeriesDataシート上のラベルに対応したセルに入力されたデータを元にグラフを作成.



☆☆☆ 使い方(例)☆☆☆
~ 多数の系列を含むグラフの作成 ~
まず,2系列程度を含んだグラフを作成します.
次に,「ActionUpdateChartSeriesData_グラフ系列情報取得」を実行します.
SeriesDataシートにグラフ系列の情報が入力されるので, 系列分コピーして必要な個所を編集します.
先に作成したグラフを削除した後, 「ActionReMakeChartSeries_グラフ系列作成」を実行すれば,目的のグラフが得られるでしょう.
  初めは少しずつ編集・グラフ作成を繰り返すことをお勧めします.


グラフレイアウト用 編集可能項目一覧:
  ※フォントはセルの書式で指定します.
ラベル名
English / 日本語
説明
SheetIndex / シート番号 グラフ判別用のデータ(SheetIndex,SheetNameはグラフの存在するシートを示す)
SheetName / シート名
ChartIndex / グラフ番号
ChartName / グラフ名
Title / タイトル タイトルテキストの値と大きさ
  ※フォントはセルの書式で指定します.
TitleSize / タイトルサイズ[pt]
Left / 左端 グラフオブジェクトのシート上での位置と大きさ
Top / 上端
Width / 幅
Height / 高さ
AreaLeft / グラフ左端 グラフ(軸を含む)のグラフオブジェクト内での位置と大きさ
AreaTop / グラフ上端
AreaWidth / グラフ幅
AreaHeight / グラフ高さ
InsideLeft / 表示域左端 グラフ表示域(プロット領域)のグラフオブジェクト内での位置と大きさ
InsideTop / 表示域上端
InsideWidth / 表示域幅
InsideHeight / 表示域高さ
XTitle / カテゴリ軸タイトル 主横軸の軸の書式設定に対応
  ※フォントはセルの書式で指定します.
XTitleSize / カテゴリ軸タイトルサイズ[pt]
XMax / カテゴリ軸最大値
XMin / カテゴリ軸最小値
YTitle / データ軸タイトル 主縦軸の軸の書式設定に対応
YTitleSize / データ軸タイトルサイズ[pt]
YMax / データ軸最大値
YMin / データ軸最小値
YSubTitle / 副データ軸タイトル 副縦軸の軸の書式設定に対応
  ※フォントはセルの書式で指定します.
YSubTitleSize / 副データ軸タイトルサイズ[pt]
YSubMax / 副データ軸最大値
YSubMin / 副データ軸最小値
LegendLeft / 凡例左端 凡例の位置と大きさと書式
  ※フォントはセルの書式で指定します.
LegendTop / 凡例上端
LegendWidth / 凡例幅
LegendHeight / 凡例高さ
LegendFont / 凡例フォント



グラフ系列用 編集可能項目一覧:
ラベル名
English / 日本語
説明
SheetIndex / シート番号 グラフ判別用のデータ(SheetIndex,SheetNameはグラフの存在するシートを示す)
  ※グラフ作成の際,同一のグラフ内の系列は
   ChartIndex・ChartNameとSeriesTypeが同じである必要があります.
SheetName / シート名
ChartIndex / グラフ番号
ChartName / グラフ名
SeriesIndex / 系列番号 系列判別用のデータ
SeriesName / 系列名
SeriesType / 系列型
(システム値)
グラフの種類を表すデータ
  ※グラフ系列情報取得をして値を取得してください.
  ※副縦軸のあるグラフの情報取得は可能ですが,
   グラフ作成には対応していません.
InputDataSheet /
データシート
グラフ系列の参照するデータ範囲
  ※ColumnVは縦軸や基本のデータとなる値を格納する行
  ※ColumnXは横軸やカテゴリのデータとなる値を格納する行
   (一部のグラフのみ使用)
  ※ColumnBはバブルの大きさとなる値を格納する行
   (バブルチャートのみ使用)
  ※行を整数で指定した場合は CIndex2Str 関数で変換してください.
ColumnV /
データ値列[A~]
ColumnX /
カテゴリ値列[A~]
ColumnB /
バブル値列[A~]
StartRow /
データ最上行[1~]
RowCount /
データ行数
PlotSize /
プロットサイズ
データ系列の書式設置に対応
  ※プロットグラフ・バブルチャート等のみ使用
  ※色はセルの背景色で指定します.
PlotStyle / プロットスタイル
(システム値)
PlotColor / プロット色
PlotBackColor / プロット副色
PlotTrans / プロット透明度(0~1.0)
LineWidth / 線幅 データ系列の書式設置に対応
  ※線グラフ等のみ使用
LineColor / 線色(セル背景色)
LineTrans / 線透明度(0~1.0)