Excel VBAグラフチャート名で指定するには再
以前に質問しましたが解決していませんので再度質問します。
ActiveChartではなく、具体的なチャート名で
指定するにはどのように記述すればよいでしょうか。
具体的には、以下のtest()のコードの最後の1行
ActiveChart.SetSourceData Source:=Range("Sheet1!A1:B2"), PlotBy:=xlRows
をActiveChartを使わずに記述するには、
どのように記述すればよいでしょうか。
回答例のように具体的なコードを教えてください。
よろしくお願いします。(Windows10,Excel2016)
---------------------------------------
Sub test()
ThisWorkbook.Worksheets("Sheet1").Select
ThisWorkbook.Worksheets("Sheet1").Range("A10").Select
ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart2(297, xlBarStacked100).Select
ActiveChart.SetSourceData Source:=Range("Sheet1!A1:B2"), PlotBy:=xlRows
End Sub
---------------------------------------
(注1)test()を実行する前にSheet1シートのセルA1,A2,B1,B2にA,B,75,25の値を入力してから実行してください。
(回答例)
---------------------------------------
Sub test()
Dim chart_name As String
ThisWorkbook.Worksheets("Sheet1").Select
ThisWorkbook.Worksheets("Sheet1").Range("A10").Select
ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart2(297, xlBarStacked100).Select
chart_name = ActiveChart.Name
chart_name = Trim(Right(chart_name, Len(chart_name) - Len(ActiveSheet.Name)))
ThisWorkbook.Worksheets("Sheet1").ChartObjects(chart_name).SetSourceData Source:=Range("Sheet1!A1:B2"), PlotBy:=xlRows
End Sub
---------------------------------------
(注2)ただし、このコードではエラーになります。
(注3)回答例のようにチャート名を取得するためにActiveChartを使用するのは可です。