본문 바로가기

기타 참고 자료/Excel

Multiple Series로 그래프 그리기(VBA)

Sub 매크로1()
'
' 매크로1 매크로
'
' 바로 가기 키: Ctrl+Shift+M
'
'영역 지정 변수
Dim Range1 As Range 
Dim Range2 As Range

'오류 xlup, down 에러 방지
Const xlUp As Long = -4162
Const xlDown As Long = -4121

'초기 데이터 설정
Set Range1 = ThisWorkbook.Worksheets(1).Cells(5, 4)
Set Range2 = ThisWorkbook.Worksheets(1).Cells(5, 5).End(xlDown)
With ActiveChart
    ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
    ActiveChart.SetSourceData Source:=Range(Range1, Range2)

'데이터 선택 영역 변수
Dim RangeX1 As Range
Dim RangeX2 As Range
Dim RangeY1 As Range
Dim RangeY2 As Range
Dim a As Integer

a = 2
Do
	'데이터 지정
    Set RangeX1 = ThisWorkbook.Worksheets(1).Cells(5, 4 + ((a - 1) * 5))
    Set RangeX2 = ThisWorkbook.Worksheets(1).Cells(5, 4 + ((a - 1) * 5)).End(xlDown)
    Set RangeY1 = ThisWorkbook.Worksheets(1).Cells(5, 5 + ((a - 1) * 5))
    Set RangeY2 = ThisWorkbook.Worksheets(1).Cells(5, 5 + ((a - 1) * 5)).End(xlDown)
    
    If IsEmpty(RangeY1) Then
        Exit Do '탈출
    End If
    
    '그래프 그리기
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.FullSeriesCollection(a).XValues = Range(RangeX1, RangeX2)
    ActiveChart.FullSeriesCollection(a).Values = Range(RangeY1, RangeY2)
    a = a + 1
Loop
End With
        
End Sub

 좀 더 간결하게 가능

'기타 참고 자료 > Excel' 카테고리의 다른 글

엑셀 R1C1 참조 스타일  (0) 2020.06.01