• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで同じサイズの複数のグラフを整列して作成する方法)

エクセルのマクロで複数のグラフを整列して作成する方法

このQ&Aのポイント
  • エクセルで商品毎の販売量推移の散布図を複数作成し、それぞれのグラフを比較するためには、同じサイズのグラフを作成し、きちんと並べる必要があります。
  • 「新しいマクロの記録」を使ってマクロを作成する際には、以下の点に注意する必要があります。
  • 1. グラフを作成する際、最初からサイズを指定する方法 2. 移動する際のグラフの名前の指定方法 3. グラフの移動方法

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

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

>エラー グラフを選んだままマクロを動かすと,よくそうなる症状です。 では。 Sub macro1R1() Dim c As ChartObject Dim n n = 3 ActiveSheet.Range("A1").Select For Each c In ActiveSheet.ChartObjects c.Height = 200 c.Width = 300 c.Left = Cells(n, "D").Left c.Top = Cells(n, "D").Top n = n + 16 Next End Sub

macchome
質問者

お礼

早速のレスポンスありがとうございました。 一つ目のグラフについてはうまくいきましたが、2つ目のグラフではエラーになりました。 そこで、アドバイスを参考に ActiveSheet.Range("A1").Select の位置を下記のように変更しました所、うまくいきました\(^o^)/ For Each c In ActiveSheet.ChartObjects '---- ActiveSheet.Range("A1").Select '--- c.Height = 200 c.Width = 300 c.Left = Cells(n, "D").Left c.Top = Cells(n, "D").Top n = n + 16 Next おかげさまで、これから一仕事できそうです。 助かりました。 どうもありがとうございました。

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

その他の回答 (1)

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

名前を使わず,「オブジェクト」を操作する練習をしましょう。 作成例: Sub macro1()  Dim c As ChartObject  Dim n  n = 3  For Each c In ActiveSheet.ChartObjects   c.Height = 200   c.Width = 300   c.Left = Cells(n, "D").Left   c.Top = Cells(n, "D").Top   n = n + 16  Next End Sub

macchome
質問者

補足

早々に回答をいただきましてどうもありがとうございました。 早速、トライしてみたのですが、途中でエラーが発生してしまいました。 デバッグのステップオーバーでチェックしてみた所、   c.Height = 200   c.Width = 300 では、問題なくサイズが変更されておりました。 次の   c.Left = Cells(n, "D").Left で下記のエラーが表示されました。 -------------- 実行時エラー'1004' 'Cellsメソッッドは失敗しました:'_Global'オブジェクト -------------- c.Left = c.Left とするとエラーは発生せず、 Cells(n, "D").Left=Cells(n, "D").Left とするとエラーが発生するので、 Cells(n, "D").Left の使用方法がおかしいような気がするのですが、 残念ながらそれ以上は分かりませんでした。

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

関連するQ&A