
現在、本を読みながら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")としてセルを参照すると、「オートメーションエラーです」とエラーの内容が変わってしまいます。
本の内容通りに記述をしてもエラーが出てしまい、お手上げの状態です。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
マクロの記録と比較してはどうですか?
マクロの記録で、その本と同じグラフを作成してみましょう。
マクロの記録は盲点でした…! さっそく試して参りましたが、そも現行のExcelではグラフウィザードが廃止されていたのですね。本が古すぎたようです…
マクロの記録では.AddChartメソッドとなりました。.ChartWizardメソッドをマクロの記録で再現するのはもう難しいのでしょうか?
素直に.AddChartメソッドや.Addメソッドで再現を試みたところ上手くいきました。
素早い回答ありがとうございます、参考になりました!
No.2
- 回答日時:
次の命令で問題なく表示されると思います。
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 数値軸のタイトル
ご確認ください。
回答者様のコードで無事にエラーを出さずグラフの作成が出来ました!
グラフの種類によって指定してはいけないプロパティがあるのですね…勉強になりました。これからはそういった部分にも目を向けて調べていこうと思います。
回答、ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
どのドキュメントは暗号化され...
-
VBA[Private Sub]のコードをシ...
-
ファイル名を今日の日付、時刻...
-
VBAを使ってエクセルシート...
-
ピボットグラフの書式の固定に...
-
Word VBAでWindows media playe...
-
COMポートマクロ入りのxlsファ...
-
エクセルマクロのグラフ操作
-
別ブックからユーザーフォーム...
-
cellsで特定の離れた範囲を選択...
-
最初の1回のみにボタンクリッ...
-
エクセルのマクロでSelection.S...
-
エクセルVBAで新規シートにマク...
-
ユーザーフォームを「Esc」キー...
-
Powerpointでランダムな数字の...
-
Word 2016で赤文字指定のマクロ...
-
エクセルシートをまとめて印刷...
-
【ExcelVBA】クエリの更新とピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
VBA[Private Sub]のコードをシ...
-
Powerpointでランダムな数字の...
-
最初の1回のみにボタンクリッ...
-
cellsで特定の離れた範囲を選択...
-
どのドキュメントは暗号化され...
-
エクセルのマクロでSelection.S...
-
エクセルのマクロのパスワード保護
-
ピボットグラフの書式の固定に...
-
VBAを使ってエクセルシート...
-
別ブックからユーザーフォーム...
-
エクセルVBAで、画像の倍率を知...
-
【ExcelVBA】クエリの更新とピ...
-
Pictures.Insertメソッド⇒Shape...
-
エクセル2007 テキストボ...
-
Visual Basicでのグラフ作成
-
エクセルで「ODBC Microsoft Ac...
-
エクセルシートをまとめて印刷...
おすすめ情報
追記となりますのでベストアンサーは最初の回答者の方とさせていただきますが、よろしければ次の疑問についてもお答えいただけると幸いです。
上記のコードですが、グラフの種類をxl3DBarやxl3DColumnにするとエラーを出さずにグラフの作成を行うことが出来ました。どうしてこの2種類だと問題なく実行できて、円グラフ(xl3DPie)にするとエラーとなるのかがわからずにもやもやしています。最初の本文のとおり何が間違っているのかわからずお手上げの状態です。よろしくお願いいたします。