こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBSでExcelのグラフを作成

VBScriptで

1.Excelを起動
2.CSVファイルを開く
3.開いたデータを使ってグラフ(折れ線付き散布図)を作る

という処理を一括して行おうとしています。
現在2までは成功しており、3でつまづいています。
具体的には、グラフタイプを折れ線付き散布図に変更するところでエラーが生じます。
以下実際のコードです。

'Excelを開く
Set excel = CreateObject("Excel.Application")
excel.Visible = true
'CSVファイルを開く
Set book = excel.Workbooks.Open("C:\\test.csv")
'グラフを作る
Set sheet = excel.ActiveSheet
Set chart = sheet.ChartObjects.Add(50, 50, 500, 300)
chart.Chart.ChartType = xlXYScatterLines '※※※ この行でエラー ※※※
chart.Chart.SetSourceData sheet.Range("A2:B50")

エラーの内容は「型が一致しません」というもので、この行がなければ最後まで動作します。
(グラフタイプが最もデフォルトの集合縦棒になってしまいますが)

グラフタイプを折れ線付き散布図にする、chart.Chart.ChartType = xlXYScatterLines という
シンプルな一文のどこに間違いがあるのか、ご教授願います。

投稿日時 - 2012-09-26 16:46:48

QNo.7718212

すぐに回答ほしいです

質問者が選んだベストアンサー

xlXYScatterLines はExcelの定数名です。
Excel上のVBAであれば、Excelが解釈してくれますが
VBSでは出来ませんので
Excel のイミディエイトウィンドウで
?xlXYScatterLines でEnterキー

74 (2010では)
を得てこの実数をVBSで使用してください。
chart.Chart.ChartType = 74 のように。
ただ、後で見た時に分かりづらいので
Const xlXYScatterLines = 74
と宣言しておいて
chart.Chart.ChartType = xlXYScatterLines と使う場合が多いです。

投稿日時 - 2012-09-26 21:01:27

お礼

ありがとうございます、これでした!
74と実数を代入したところうまくいきました!
(2002と少々古いバージョンでしたが74でOKでした)

「Exselマクロ上で記録されたVBAはそのままVBSで使える」と
思い込んでおりました。今後はこういった違いもあるという点
にもう少し注意しながら作業しようと思います。

投稿日時 - 2012-09-27 08:26:24

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちは。

 VBAのヘルプで「ChartObjects コレクション オブジェクト」のページをご参照ください。
 下記の説明が参考になるかもしれません。


ChartObjects コレクションには、1 つのシートにあるすべての埋め込みグラフが含まれています。空の埋め込みグラフを新しく作成して、コレクションに追加するには、Add メソッドを使います。新しい埋め込みグラフにデータをプロットし、書式を設定するには、ChartWizard メソッドを使います。次の使用例は、埋め込みグラフを新しく作成し、セル範囲 A1:A20 のデータを折れ線グラフとして追加します。

Dim ch As ChartObject
Set ch = Worksheets("sheet1").ChartObjects.Add(100, 30, 400, 250)
ch.Chart.ChartWizard source:=Worksheets("sheet1").Range("a1:a20"), _
gallery:=xlLine, title:="New Chart"

 なお、私が確認してのはExcel2003です。

では。

投稿日時 - 2012-09-26 19:03:48

お礼

回答ありがとうございました。

投稿日時 - 2012-09-27 08:30:12

あなたにオススメの質問