アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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)も同様に変えられます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/04 11:44

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

    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます。参考にしてやってみました。ただ当方、マクロについては、プログラムを自分で組むことは無理で、実際にグラフ作成の手順をやってそれを覚えさせる程度しかできません。そこで、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

何か分かることがありましたら、また教えてくださいませんか。

お礼日時:2009/07/03 19:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!