Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8507 / 13644 ツリー ←次へ | 前へ→

【32838】グラフのVBA操作 サザエ 05/12/23(金) 18:46 質問[未読]
【32839】Re:グラフのVBA操作 だるま 05/12/23(金) 19:47 回答[未読]
【32840】Re:グラフのVBA操作 ponpon 05/12/23(金) 20:23 発言[未読]
【32857】Re:グラフのVBA操作 サザエ 05/12/25(日) 11:31 お礼[未読]
【32859】Re:グラフのVBA操作 だるま 05/12/25(日) 13:19 発言[未読]

【32838】グラフのVBA操作
質問  サザエ  - 05/12/23(金) 18:46 -

引用なし
パスワード
   お世話になっております。
グラフのy軸の設定で
Sheets(1).ChartObjects(1).MinimumScale = 200
だとうまくいきませんが、マクロ使って調べたら
Sheets(1).ChartObjects(1).Activate  
ActiveChart.Axes(xlValue).MinimumScale = 200
だとうまくいきます。上だとなぜだめなんでしょうか?

あとグラフのオブジェクト名の変更方法を教えてほしいです。
(VBAで記述ではなく、グラフを右クリックして名前変更、みたいな感じで)

【32839】Re:グラフのVBA操作
回答  だるま WEB  - 05/12/23(金) 19:47 -

引用なし
パスワード
   ▼サザエ さん:
>お世話になっております。
>グラフのy軸の設定で
>Sheets(1).ChartObjects(1).MinimumScale = 200
>だとうまくいきませんが、マクロ使って調べたら
>Sheets(1).ChartObjects(1).Activate  
>ActiveChart.Axes(xlValue).MinimumScale = 200
>だとうまくいきます。上だとなぜだめなんでしょうか?

一言で言って構文が間違っているからです。^d^

>あとグラフのオブジェクト名の変更方法を教えてほしいです。
>(VBAで記述ではなく、グラフを右クリックして名前変更、みたいな感じで)

Shiftキーを押しながらグラフをクリックでグラフオブジェクトを選択できますので
あとは名前ボックスで変更できます。

【32840】Re:グラフのVBA操作
発言  ponpon  - 05/12/23(金) 20:23 -

引用なし
パスワード
   こんばんは。

私も詳しくは、わかりませんが、


※ヘルプより
Chart プロパティ
ChartObject オブジェクトに属しているグラフを表す Chart オブジェクトを取得するには、Chart プロパティを使用します。

したがって、
  ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MinimumScale = 200
                    ~~~~~~~~~~
とすると、できると思います。

ヘルプより
単体の ChartObject オブジェクトを取得するには、ChartObjects(index) メソッドを使用します。引数 index には、埋め込みグラフのインデックス番号または名前を指定します。次の使用例は、シート 1 の埋め込みグラフ 1 のグラフ エリアにパターンを設定します。

Worksheets("Sheet1").ChartObjects(1).Chart. _
  ChartArea.Interior.Pattern = xlLightDown

>VBAで記述ではなく
ではないですが、

埋め込みグラフの名前は、埋め込みグラフを選択すると [名前] ボックスに表示されます。ChartObject オブジェクトの名前を設定したり、取得したりするには、Name プロパティを使います。

Worksheets("sheet1").ChartObjects(1).Name = "グラフあいう"

【32857】Re:グラフのVBA操作
お礼  サザエ  - 05/12/25(日) 11:31 -

引用なし
パスワード
   うまくいきました。ありがとうございます。
それにしても、なぜChartObjects(1)だけじゃだめなんだと
思ってしまいますが、そういうものだとあきらめて覚えて
しまうことにします。
まだまだ奥が深そうだ。

【32859】Re:グラフのVBA操作
発言  だるま WEB  - 05/12/25(日) 13:19 -

引用なし
パスワード
   >それにしても、なぜChartObjects(1)だけじゃだめなんだと...

ChartObjects(1)はシート上の1番目のChartObjectを示し、ChartObjectとはシート
上にChartを配置するためのコンテナでありChartそのものではないからです。^d^

Chartはシート上だけでなくグラフシートにも描けますが、こちらはChartそのもの
といってもよいと思います。

ちなみに

'シート上の場合
Dim Crt as Chart
Set Crt = ActiveSheet.ChartObjects(1).Chart

'グラフシートの場合
Dim Crt as Chart
Set Crt = Sheets("Graph1")

Chartへの参照を取得した後の操作はいずれの場合も同じになります。

8507 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free