Excelのグラフ移動に関する質問です。 以下のVBAを用いてグラフを2つ作成しました。 1つ目のグラフをK1のセル、
Excelのグラフ移動に関する質問です。 以下のVBAを用いてグラフを2つ作成しました。 1つ目のグラフをK1のセル、 2つ目のグラフをK18のセルから記載し始めたいのですが、どのようなコードを組めばよいのでしょうか。 下から6~2行目のコメントアウトは、実行するとエラーが出た上で2つともK18にて重なった状態で出力されてしまいました。 '100%グラフ作成 Dim chtRng As Range Set chtRng = Range("G4", Range("G4").End(xlDown)) With ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Chart .SetSourceData Source:=chtRng .ChartGroups(1).GapWidth = 0 .SeriesCollection(1).XValues = chtRng.Offset(, -1) .HasTitle = True .ChartTitle.Text = cutright(ActiveWorkbook.Name, 5) & "-" & sheetname & "cm-100%" .SetElement (msoElementDataLabelOutSideEnd) With ActiveSheet.ChartObjects .Top = Range("K1").Top .Left = Range("K1").Left '位置を設定 .Height = 300 .Width = 500 '大きさを設定 End With End With '80%グラフ作成 Dim chtRng2 As Range Set chtRng2 = Range("J4", Range("J4").End(xlDown)) With ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Chart .SetSourceData Source:=chtRng2 .ChartGroups(1).GapWidth = 0 .SeriesCollection(1).XValues = chtRng2.Offset(, -1) .HasTitle = True .ChartTitle.Text = cutright(ActiveWorkbook.Name, 5) & "-" & sheetname & "cm-80%" .SetElement (msoElementDataLabelOutSideEnd) With ActiveSheet.ChartObjects '.Top = Range("K18").Top '.Left = Range("K18").Left '位置を設定 '.Height = 300 '.Width = 500 '大きさを設定 End With End With
Excel | Visual Basic・11閲覧・50
ベストアンサー
With ActiveSheet.ChartObjects の部分は ChartObjects ではなく ChartObject を指定するので、他にグラフが無い場合は With ActiveSheet.ChartObjects(1) と With ActiveSheet.ChartObjects(2) だと思います。 ちなみに、最後に追加したグラフと言う意味で With ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count) または、その前のWithが○○.AddChart(...).Chartなので With .Parent にすれば質問のプログラムでは両方に対応できると思います。
質問者からのお礼コメント
ありがとうございます!! 助かりました!!
お礼日時:1/23 11:12