• ベストアンサー

エクセル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) だと思うのですが、うまくいきませんでした。 ご存知の方がいましたら、教えていただけないでしょうか。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。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

eiji2003
質問者

お礼

ご回答ありがとうございます。 なるほど~。適当な名前を付ければ、うまくいきそうですね。テクニックとして覚えておきます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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 何回(数回)やってもエラーになりませんでした。 ご参考になれば。

eiji2003
質問者

お礼

ご回答ありがとうございました。 教えていただいた方法でやってみたらうまくいきました。最近VBAをはじめたのですがわからないことがいっぱいです。一つ一つ覚えていこうと思います。

関連するQ&A

専門家に質問してみよう