- ベストアンサー
エクセルVBAの質問
VBAでわからないことがあります。 まず下記のプログラムをご覧下さい。 グラフを作成して、そのグラフにタイトルをつけるというものですが、グラフを削除してまた新たに作成すると "graph1"ではなくなりますよね? グラフの番号がどのようになっても利用できるプログラムを作成したいのですが、どのようにすればよいのでしょうか? ************************** Sub MakeChart() Dim mySouce As Range Set mySouce = Range("B2").CurrentRegion Charts.Add ActiveChart.SetSourceData _ Source:=mySouce,PlotBy:=xlColumns Charts("Graph1").Activate with activechart .HasTitle=True .ChartTitle.Text = "4月度売上高" End Sub ************************* 私が考えたのは Charts("Graph1").Activate ⇒chart("graph" & charts.count) だと思うのですが、うまくいきませんでした。 ご存知の方がいましたら、教えていただけないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 続けてタイトルを付けるなら、わざわざActivateし直す必要はないと思います。 Sub MakeChart() Dim mySouce As Range Set mySouce = Range("B2").CurrentRegion Charts.Add With ActiveChart .SetSourceData Source:=mySouce,PlotBy:=xlColumns .HasTitle=True .ChartTitle.Text = "4月度売上高" End With End Sub それか、独自の名前を付けるとか Sub MakeChart() Dim mySouce As Range Set mySouce = Range("B2").CurrentRegion Charts.Add With ActiveChart .SetSourceData Source:=mySouce,PlotBy:=xlColumns .Name = "好きな名前" End With Charts("好きな名前").Acivate With ActiveChart .HasTitle=True .ChartTitle.Text = "4月度売上高" End With End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub MakeChart() Dim mySouce As Range Set mySouce = Worksheets("sheet1").Range("B2").CurrentRegion Charts.Add.SetSourceData Source:=mySouce, PlotBy:=xlColumns ActiveChart.HasTitle = True ActiveChart.ChartTitle.Characters.Text = "4月度売上高" End Sub 何回(数回)やってもエラーになりませんでした。 ご参考になれば。
お礼
ご回答ありがとうございました。 教えていただいた方法でやってみたらうまくいきました。最近VBAをはじめたのですがわからないことがいっぱいです。一つ一つ覚えていこうと思います。
お礼
ご回答ありがとうございます。 なるほど~。適当な名前を付ければ、うまくいきそうですね。テクニックとして覚えておきます。