• ベストアンサー

エクセルのグラフ位置をマクロで調整したい

約150人分のデータを一人分ずつグラフにして、そのグラフを準備したワークシート(エクセル)の特定の位置に貼り付けたいのです。 マクロを使ってグラフをつくるところまではできたのですが、所定の位置に移動させることができないのです。150人分のデータなので一つ一つやっていたらきりがないので、マクロを使ってグラフの位置を移動させたいのですがなかなかできません。マクロを使うといっても、「新しいマクロを記録」→「記録終了」の流れでしか使えません。誰かアドバイスをお願いします。今回初めて教えてgooを利用します。

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

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

ChartオブジェクトにLeftプロパティ、Topプロパティがあると思ってたのですが、ないようですね。失礼しました。 ActiveSheet.Shapes(グラフ名)にはLeftプロパティ、Topプロパティがありますのでこれを使用してください。 ただし、グラフ名は実行するたびに変わるため注意が必要です。 次のコードを最後の「End Sub」の前に追加してみてください。 GName = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 2) With ActiveSheet.Shapes(GName) .Left = 100 .Top = 100 End With Left,Topの数値は適当に調整してください。 余談ですが、グラフの幅(Width)、高さ(Height)も同様に変えられます。

h19701017
質問者

お礼

ありがとうございます。確かにグラフの貼り付け位置が変わりました。少しずつ数値を変更して、ぴたりの位置を見つけたいと思います。大変参考になりました。マクロに少し興味が湧いてきました。  ありがとうございました。分かりやすいアドバイスに感謝いたします。

その他の回答 (1)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

マクロでグラフをつくれるなら、あとはそのオブジェクトのLeftプロパティ、Topプロパティに位置をセットするだけなのでは?

h19701017
質問者

お礼

さっそくの回答ありがとうございます。参考にしてやってみました。ただ当方、マクロについては、プログラムを自分で組むことは無理で、実際にグラフ作成の手順をやってそれを覚えさせる程度しかできません。そこで、Leftプロパティなるものをどこにどのように挿入すればいいのか分からないのです。プログラムを見てみると次のようになっていました。 Range("B7:G9").Select Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("個人票生成シート").Range("B7:G9"), PlotBy _ :=xlRows ActiveChart.Location Where:=xlLocationAsObject, Name:="個人票生成シート" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "教科" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "偏差値" End With End Sub 何か分かることがありましたら、また教えてくださいませんか。