【初月無料キャンペーン中】gooドクター

現在、本を読みながらVBAの勉強をしているのですが、行き詰ってしまいました。
ChartWizardを用いてグラフの設定を行い、グラフを作成するという趣旨のセクションの練習問題です。本の解答と同じように入力出来ているはずなのですが、マクロを実行しようとすると「指定したディメンションは、このグラフの種類では無効です」とエラーが出てしまいます。

以下、環境とコードとなります。

[環境]
Windows 7 Home Premium
Microsoft Office Excel 2007

[コード]

Set WS = Worksheets("Sheet1")

Set Grp1 = WS.ChartObjects.Add(150, 150, 320, 200)

Grp1.Chart.ChartWizard Source:=WS.Range("A1:F2"), _
Gallery:=xl3DPie, Format:=4, PlotBy:=xlRows, _
CategoryLabels:=1, SeriesLabels:=1, HasLegend:=1, _
Title:="成績", CategoryTitle:="", _
ValueTitle:="", ExtraTitle:=""

また、Titleを文字列ではなくWS.Range("A2")としてセルを参照すると、「オートメーションエラーです」とエラーの内容が変わってしまいます。

本の内容通りに記述をしてもエラーが出てしまい、お手上げの状態です。よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    追記となりますのでベストアンサーは最初の回答者の方とさせていただきますが、よろしければ次の疑問についてもお答えいただけると幸いです。

    上記のコードですが、グラフの種類をxl3DBarやxl3DColumnにするとエラーを出さずにグラフの作成を行うことが出来ました。どうしてこの2種類だと問題なく実行できて、円グラフ(xl3DPie)にするとエラーとなるのかがわからずにもやもやしています。最初の本文のとおり何が間違っているのかわからずお手上げの状態です。よろしくお願いいたします。

      補足日時:2016/10/21 23:16
gooドクター

A 回答 (2件)

マクロの記録と比較してはどうですか?


マクロの記録で、その本と同じグラフを作成してみましょう。
    • good
    • 0
この回答へのお礼

マクロの記録は盲点でした…! さっそく試して参りましたが、そも現行のExcelではグラフウィザードが廃止されていたのですね。本が古すぎたようです…
マクロの記録では.AddChartメソッドとなりました。.ChartWizardメソッドをマクロの記録で再現するのはもう難しいのでしょうか?

素直に.AddChartメソッドや.Addメソッドで再現を試みたところ上手くいきました。
素早い回答ありがとうございます、参考になりました!

お礼日時:2016/10/21 21:41

次の命令で問題なく表示されると思います。



Grp1.Chart.ChartWizard Source:=ws.Range("A1:F2"), _
 Gallery:=xl3DPie, Format:=4, PlotBy:=xlRows, _
 CategoryLabels:=1, SeriesLabels:=1, HasLegend:=1, _
  Title:=ws.Range("A2")

【説明】
細かく調べてはいませんが、円グラフ(xl3DPie)には次の3つのプロパティは必要がない(指定してはいけない)と思われます。
 ◆CategoryTitle … 項目軸のタイトル
 ◆ValueTitle   … 数値軸のタイトル
 ◆ExtraTitle   … 3-D グラフの系列軸のタイトル、または 2-D グラフの第 2 数値軸のタイトル

ご確認ください。
    • good
    • 1
この回答へのお礼

回答者様のコードで無事にエラーを出さずグラフの作成が出来ました!
グラフの種類によって指定してはいけないプロパティがあるのですね…勉強になりました。これからはそういった部分にも目を向けて調べていこうと思います。

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

お礼日時:2016/10/23 19:00

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


人気Q&Aランキング