アプリ版:「スタンプのみでお礼する」機能のリリースについて

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 という
シンプルな一文のどこに間違いがあるのか、ご教授願います。

A 回答 (2件)

xlXYScatterLines はExcelの定数名です。


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

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

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

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

お礼日時:2012/09/27 08:26

こんにちは。



 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です。

では。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/09/27 08:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!