• ベストアンサー

Excel VBA グラフオブジェクトの使用方法について

Excel2003のVBAについて教えて下さい。 以下の(1)~(4)のコードを用いて セル"A1"に設定された値をグラフスケール(最大値)に設定しようとしています。 (1) scaleData = Worksheets("シート1").Range("A1").Value (2) Set chartObj = ActiveSheet.ChartObjects(1) (3) Set chart1 = chartObj.Chart (4) chart1.Axes(xlValue).MaximumScale = scaleData グラフオブジェクト単体(グループ化しない)時は問題なく、グラフスケールの設定が行えたのですが、グラフオブジェクトやラベル、ボタンなどを結合すると、(3)で、以下のエラーメッセージが出て、グラフスケールの設定が行えません。 「WorksheetクラスのChartObjectsプロパティを取得できません。」 グループ化することにより、グラフオブジェクトの指定方法が異なるのでしょうか? 解決方法をご存知の方、教えて下さい。宜しくお願い致します。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1さんと、表現が異なりますが、同じ事ですね。おまけ付きです。XL2000用です。 'シートモジュールの場合 Sub test() Me.Shapes("Group 4").GroupItems("Chart 1").DrawingObject.Chart.Axes(xlValue).MaximumScale = 2 End Sub 'おまけ グループ化された図形も含め、図形の名前リストアップ Sub test2() Dim shp As Shape For Each shp In Me.Shapes Debug.Print Me.Name & ":" & shp.Name If shp.Type = msoGroup Then Call test3(shp) Next shp End Sub Sub test3(shp As Shape) Dim shp2 As Shape For Each shp2 In shp.GroupItems Debug.Print shp.Name & ":" & shp2.Name If shp2.Type = msoGroup Then Call test3(shp2) Next shp2 End Sub

nori79
質問者

お礼

早速の回答ありがとうございます。 教えていただい方法で、グラフスケールの変更が行えました。 又、図形の名前のリストアッププログラムもありがとうございます。 シート上のオブジェクト名称を参照することができました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>グループ化することにより、グラフオブジェクトの指定方法が異なるのでしょうか? マクロに行く前にまずワークシート画面上で,グループ化したグラフをちょんちょんと触ってみます。いつも通り「軸をWクリックして軸の書式設定を出す」とか出来ますか? 出来ませんね。 でも,多少コツは要りますがグラフオブジェクトの編集に上手く入り,そこから各部設定を編集することはちゃんとできますので,「グラフオブジェクトとしての操作」が出来ないわけでは勿論ありません。 で。 途中は飛ばして結論まで行くと,たとえば activesheet.groupobjects(1).shaperange.groupitems(1).drawingobject.chart.axes(xlvalue).maximumscale = 10 のように連結を丁寧に追っていけば操作できます。

nori79
質問者

お礼

早速の回答ありがとうございます。 教えていただい方法(コード)で、グラフスケールの変更が行えました。 >多少コツは要りますがグラフオブジェクトの編集に上手く入り 小生のやり方が悪いのだと思いますが、グラフオブジェクトの編集は行えませんでした。(コツをつかめませんでした..)

すると、全ての回答が全文表示されます。

関連するQ&A