対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016
VBAから、ブックの末尾にグラフシート・Chartオブジェクトを追加するメソッドには、バグがあります。
Charts.Addではグラフシートをブックの末尾に追加できない
例えば、
Sheets.Add After:=Sheets(Sheets.Count)
といったコードを実行すると、アクティブなブックの末尾にワークシートを挿入することができます。
同じ考え方で、
Charts.Add After:=Sheets(Sheets.Count)
というコードで、グラフシートをブックの末尾に挿入できるはずなのですが、できません。
[スポンサードリンク]
グラフシートをブックの最後に追加しようと、
Charts.Add After:=Sheets(Sheets.Count)
を実行しても、
Charts.Add Before:=Sheets(Sheets.Count)
と同じ結果になってしまうのです。
グラフシートがブックの最後のシートの左側に追加されてしまいます。
このサイト・インストラクターのネタ帳へも、
「charts.add 最後」
といった検索キーワードでのアクセスがあります。
グラフシートをブックの末尾に追加するサンプルマクロ
解決方法としては、以下のようなSubプロシージャです。
Sub グラフシートを末尾に追加する()
Dim cht As Chart
Set cht = Charts.Add
cht.Move After:= Sheets(Sheets.Count)
End Sub
Dim cht As Chart
Set cht = Charts.Add
cht.Move After:= Sheets(Sheets.Count)
End Sub
一旦グラフシートの挿入を行ってから、
Set cht = Charts.Add
移動を行えば、
cht.Move After:= Sheets(Sheets.Count)
ユーザー側からは、グラフシートをブックの最後に追加したように見えます。
最終更新日時:2021-13:28
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフシートをブックの最後に追加するには?