
現在、本を読みながら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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
VBA[Private Sub]のコードをシ...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
cellsで特定の離れた範囲を選択...
-
どのドキュメントは暗号化され...
-
VBAで棒グラフの色を変えたい
-
エクセル2007 テキストボ...
-
ピボットグラフの書式の固定に...
-
Powerpointでランダムな数字の...
-
エクセルのマクロでSelection.S...
-
VBAを使ってエクセルシート...
-
最初の1回のみにボタンクリッ...
-
エクセル2010 Shapeをクリップ...
-
Pictures.Insertメソッド⇒Shape...
-
PowerpointファイルにCtrl+Vで...
-
ユーザフォームをどの画面から...
-
エクセルで印刷する方法 エクセ...
-
excelファイルに使われているVB...
-
VBAを一度起動するとずっと出て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のデータ系列の線の太さを...
-
エクセルでツールバーに「縮小...
-
ファイル名を今日の日付、時刻...
-
VBA[Private Sub]のコードをシ...
-
cellsで特定の離れた範囲を選択...
-
Powerpointでランダムな数字の...
-
どのドキュメントは暗号化され...
-
最初の1回のみにボタンクリッ...
-
【ExcelVBA】クエリの更新とピ...
-
エクセルVBAで、画像の倍率を知...
-
VBAを使ってエクセルシート...
-
別ブックからユーザーフォーム...
-
エクセルのマクロでSelection.S...
-
ピボットグラフの書式の固定に...
-
wordのマクロで縮小して貼り付...
-
Pictures.Insertメソッド⇒Shape...
-
EXCELにクリップボードにある画...
-
エクセル2007 テキストボ...
-
エクセルで「ODBC Microsoft Ac...
-
ACCESS VBAからWordのテンプレ...
おすすめ情報
追記となりますのでベストアンサーは最初の回答者の方とさせていただきますが、よろしければ次の疑問についてもお答えいただけると幸いです。
上記のコードですが、グラフの種類をxl3DBarやxl3DColumnにするとエラーを出さずにグラフの作成を行うことが出来ました。どうしてこの2種類だと問題なく実行できて、円グラフ(xl3DPie)にするとエラーとなるのかがわからずにもやもやしています。最初の本文のとおり何が間違っているのかわからずお手上げの状態です。よろしくお願いいたします。