Excelのグラフを自動で作ってみる(VBScript)

VBScriptでExcelをオートメーション操作してみましょう。
一例として次のグラフを作成してみます(右側の文字は違いますよ)。

VBScriptを使って次のことを一気に自動化しています。
・Excelを起動する
・新規ワークブックを作成する
・シートにグラフ用データを入力する
・入力したデータをもとにグラフを作成
そうしてできたグラフが上の図です。

'***********************************************************
' 新しいグラフを作成する
'***********************************************************

Set ExcelApp = CreateObject("Excel.Application")

'Excelを表示状態にする
ExcelApp.Visible = True

'ブック追加
Set ExcelBook = ExcelApp.Workbooks.Add

'Worksheetを選択 (アクティブシート)
Set MySheet = ExcelBook.ActiveSheet

' シートへグラフ用データをセット
'MySheet.Cells(1, 1) = ""
MySheet.Range("B1") = "Q1"
MySheet.Range("C1") = "Q2"
MySheet.Range("D1") = "Q3"
MySheet.Range("E1") = "Q4"

MySheet.Range("A2:E2") = Array("北アメリカ",1.5,2,1.5,2.5)
MySheet.Range("A3:E3") = Array("南アメリカ",2,1.75,2,2)
MySheet.Range("A4:E4") = Array("ヨーロッパ",2.25,2,2.5,2)
MySheet.Range("A5:E5") = Array("アジア",2.5,2.5,2,2.75)

'データの範囲
Set dataRange = MySheet.Range("A1:E5")

'座標は、グラフのエリア
Set newChartObject = MySheet.ChartObjects.Add(0, 100, 300, 300)

Set MyChart = newChartObject.Chart
MyChart.ChartType = 78
MyChart.SetSourceData MySheet.Range("A1:E5")

'***********************************************************
'値	意味
'-4098	 3-D 面 
'78	 3-D 積み上げ面 
'79	 100% 積み上げ面 
'60	 3-D 集合横棒 
'61	 3-D 積み上げ横棒 
'62	 3-D 100% 積み上げ横棒 
'-4100	 3-D 縦棒 
'54	 3-D 集合縦棒 
'55	 3-D 積み上げ縦棒 
'56	 3-D 100% 積み上げ縦棒 
'-4101	 3-D 折れ線 
'-4102	 3-D 円 
'70	 分割 3-D 円 
'1	 面 
'76	 積み上げ面 
'77	 100% 積み上げ面 
'57	 集合横棒 
'71	 補助縦棒グラフ付き円 
'58	 積み上げ横棒 
'59	 100% 積み上げ横棒 
'15	 バブル 
'87	 3-D 効果付きバブル 
'51	 集合縦棒 
'52	 積み上げ縦棒 
'53	 100% 積み上げ縦棒 
'102	 集合円錐型横棒 
'103	 積み上げ円錐型横棒 
'104	 100% 積み上げ円錐型横棒 
'105	 3-D 円錐型縦棒 
'99	 集合円錐型縦棒 
'100	 積み上げ円錐型縦棒 
'101	 100% 積み上げ円錐型縦棒 
'95	 集合円柱型横棒 
'96	 積み上げ円柱型横棒 
'97	 100% 積み上げ円柱型横棒 
'98	 3-D 円柱型縦棒 
'92	 集合円錐型縦棒 
'93	 積み上げ円錐型縦棒 
'94	 100% 積み上げ円柱型縦棒 
'-4120	 ドーナツ 
'80	 分割ドーナツ 
'4	 折れ線 
'65	 マーカー付き折れ線 
'66	 マーカー付き積み上げ折れ線 
'67	 マーカー付き 100% 積み上げ折れ線 
'63	 積み上げ折れ線 
'64	 100% 積み上げ折れ線 
'5	 円 
'69	 分割円 
'68	 補助円グラフ付き円 
'109	 集合ピラミッド型横棒 
'110	 積み上げピラミッド型横棒 
'111	 100% 積み上げピラミッド型横棒 
'112	 3-D ピラミッド型縦棒 
'106	 集合ピラミッド型縦棒 
'107	 積み上げピラミッド型縦棒 
'108	 100% 積み上げピラミッド型横棒 
'-4151	 レーダー 
'82	 塗りつぶしレーダー 
'81	 データ マーカー付きレーダー 
'88	 高値 - 安値 - 終値 
'89	 始値 - 高値 - 安値 - 終値 
'90	 出来高 - 高値 - 安値 - 終値 
'91	 出来高 - 始値 - 高値 - 安値 - 終値 
'83	 3-D 表面 
'85	 表面 (トップ ビュー) 
'86	 表面 (トップ ビュー - ワイヤーフレーム) 
'84	 3-D 表面 (ワイヤーフレーム) 
'-4169	 散布図 
'74	 折れ線付き散布図 
'75	 折れ線付き散布図 (データ マーカーなし) 
'72	 平滑線付き散布図 
'73	 平滑線付き散布図 (データ マーカーなし)

上のスクリプトをメモ帳等のテキストエディタでExcel-Graph.vbs等拡張子.vbsのテキストファイルで保存して実行します。

35行目でグラフの種類を指定していますが、後半の一覧を元にして数値を書き換え、色んなグラフを試してみて下さい。

タイトルとURLをコピーしました