
エクセルで商品毎の販売量推移の散布図を複数作成し、それぞれのグラフを比較する等して販売活動の参考にしているのですが、対象となる商品の数が増えてきたので比較作業が大変になりました。一つのシートに比較邸小さな同じサイズのグラフを作成し、きちんと並べることができれば、作業が大変楽になると思っています。勿論、シートをスクロールしてグラフを見る前提です。
そこで、「新しいマクロの記録」でコードを作成してみたのですが、次の点がわからず困っています。ご指導の程よろしくお願い致します。
1.グラフを作成する際、最初からサイズを指定する方法
「新しいマクロの記録」では、一度作成したグラフのサイズを縮小する内容※になっていますが、これを最初からサイズ指定する方法があるのでしょうか?
※ ActiveSheet.Shapes("グラフ 103").ScaleWidth 0.48, msoFalse, msoScaleFromTopLeft
2.移動する際のグラフの名前?の指定方法
名前が分からないのでグラフを移動しようと思ってもグラフを指定することができないので困っています。上の例では名前が自動付与されて"グラフ 103"になっていますが、作成したグラフを消去してもグラフを作成するたびに数字が増えてしまうので、作成時に指定する方法を知りたいのです。サイズを指定する数値の単位は下記の移動に使用する単位と同じであれば助かります。
3.グラフの移動方法
「新しいマクロの記録」では下記のように相対的な数字がポイントで指定するようになっていました。
ActiveSheet.Shapes("グラフ 103").IncrementLeft 4.5
ActiveSheet.Shapes("グラフ 103").IncrementTop 43.5
これでは、複数のグラフを整列させることは難しいので、適当な移動方法はないでしょうか?
以上よろしくお願い致します。
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
早速のレスポンスありがとうございました。
一つ目のグラフについてはうまくいきましたが、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
おかげさまで、これから一仕事できそうです。
助かりました。 どうもありがとうございました。
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
この回答への補足
早々に回答をいただきましてどうもありがとうございました。
早速、トライしてみたのですが、途中でエラーが発生してしまいました。
デバッグのステップオーバーでチェックしてみた所、
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの大きなシートでグラフを見つける 4 2022/07/28 10:07
- Excel(エクセル) Excel 散布図グラフ 外れ値 セル番地参照方法 4 2022/04/19 18:56
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Word(ワード) 数値に差のあるデータを分かりやすく比較する方法について。医療現場におけるヒヤリハットの発生件数を事例 3 2022/07/18 14:24
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Excel(エクセル) <スプレッドシート>採用進捗 グラフ作成について 3 2022/10/23 15:52
- 企画・マーケティング 表やグラフ作成、数値管理ツールを探しています。 1 2023/05/30 13:33
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルにおける、グラフの指...
-
たくさん作った同じ設定のグラ...
-
エクセルでグラフタイトルが折...
-
イラレのグラフがグループ解除...
-
エクセルのグラフの一部拡大
-
エクセルでこんなグラフを作り...
-
エクセル(Excel)の目盛りの一...
-
エクセルで作業ごとの時間をグ...
-
パワーポイントに貼り付けたエ...
-
エクセルグラフの一括設定。
-
エクセルの大きなシートでグラ...
-
EXCEL・複数ある円グラフの円の...
-
ExcelからPowerPointへ画像を貼...
-
またSma4
-
~エクセル~円グラフのみを抽...
-
エクセル:ぴったり重なった後...
-
excel2010 グラフエリアの外の...
-
Excelのグラフの大きさ
-
エクセルのグラフが作成した通...
-
【至急】Excel プルダウンとグラフ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでグラフタイトルが折...
-
エクセルにおける、グラフの指...
-
たくさん作った同じ設定のグラ...
-
イラレのグラフがグループ解除...
-
パワーポイントに貼り付けたエ...
-
~エクセル~円グラフのみを抽...
-
エクセルグラフの一括設定。
-
エクセル(Excel)の目盛りの一...
-
エクセルで作業ごとの時間をグ...
-
EXCEL・複数ある円グラフの円の...
-
エクセルのグラフの一部拡大
-
excel2010 グラフエリアの外の...
-
エクセルグラフの数値軸(Y)の...
-
イスラーム王朝について質問で...
-
EXCELでの棒グラフの太さについて
-
EXCELで海の潮見表(タイドグラ...
-
エクセル:ぴったり重なった後...
-
エクセルでこんなグラフを作り...
-
Wordでレポートを作っています...
-
Excel:とびとびの日付のデータ...
おすすめ情報