ActiveSheet.Shapes.AddChart2 다른 쉬트 데이터 참조하기

차트/그래프
작성자
꽃가마
작성일
2022-09-13 23:00
조회
40
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

질문 요약 : ActiveSheet.Shapes.AddChart2 다른 쉬트 데이터 참조하기를 했는데 ActiveSheet의 영역데이터도 자동으로 가져오지 않게 하는 법

아래는 차트를 그리는데 다른 쉬트의 분산된 자료를 배열로 받아와서 챠트의 데이터로 사용해서 그립니다

다 잘 되는데 항상 이상한 데이터가 더 그려지더군요

(첨부그림 오빠두엑셀 차트1)

이유를 찾다가 결국은 알았는데

ActiveSheet.Shapes.AddChart2

위의 명령어를 실행하면 아무것도 없이 기본적으로  ActiveSheet의 데이터를 가져오고, 그 다음에 지정한 데이터를 가져오니 이상한 라인이 첨부된 그래프가 되더군여

위의 명령어를 사용해서 다른 쉬트의 내용들을 참조하여 차트를 그릴 때

기본적으로 ActiveSheet의 데이터를 가져오지 않게 하려면

1) 어떻게 해야하나요?

2) 다른 명령어를 사용해야하나요?

 

참고: 밑에 있는 구문 짜느라고 엄청 구글링 했어요.

다른 쉬트의 데이터를 배열로 조합해 차트를 그리는 겁니다

비슷하긴 한데 완전하게 나온데가 없더군요

조금씩 안되요.

결국은 완성해서 잘 됩니다. 다른 분들도 사용하실 수 있어요. 공유합니다.

 

 

 

 

Sub 차트1()
'
' 매크로1 매크로
'
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False

Dim cht As ChartObject

Dim Arr As Variant
Dim Arr0 As Variant
Dim Arr1 As Variant
Dim Arr2 As Variant
Dim Arr3 As Variant
Dim Arr4 As Variant
Dim Arr5 As Variant
Dim Arr6 As Variant
Dim Arr7 As Variant
Dim Arr8 As Variant
Dim Arr9 As Variant
Dim Arr10(1, 111) As Variant
Dim Shp As Shape '각 도형을 넣을 변수

For Each Shp In ActiveSheet.Shapes '현재시트내 각 도형을 순환
If Shp.Type = msoChart Then '도형이 차트라면
Shp.Delete '도형을 삭제
End If
Next Shp

파일m = ThisWorkbook.Name
Set wm = Workbooks(파일m)
쉬트m = "전국흐름"
쉬트b = "매매지수"
쉬트c = "전세지수"
쉬트d = "매수매도"

끝행b = wm.Sheets(쉬트b).Cells(2, 2).End(xlDown).Row
끝행d = 끝행b

갈행 = ActiveCell.Row + 1
갈열 = ActiveCell.Column

'해당 지수열 찾기
For kk = 1 To 188
If Sheets(쉬트m).Cells(ActiveCell.Row, 4) = Sheets(쉬트b).Cells(1, kk) Then 지수열 = kk
Next

'매수매도 해당열
For kk = 1 To 73
If Sheets(쉬트m).Cells(ActiveCell.Row, 2) = Sheets(쉬트d).Cells(2, kk) Then 매수열 = kk
Next

'거래량열

'If MsgBox("끝행b=" & 끝행b & " 지수열=" & 지수열 & " 매수열=" & 매수열 & " Sheets(쉬트b).Cells(1, 지수열)=" & Sheets(쉬트b).Cells(1, 지수열), vbOKCancel) = vbCancel Then Exit Sub

'화면에 보이는 위치를 잡으면 좋겎는데
상단 = WorksheetFunction.Max(ActiveCell.Top - 높이, 350)
길이 = 750
높이 = 500
ActiveSheet.Shapes.AddChart2(227, xlLine, 150, 상단, 길이, 높이).Select

With ActiveChart

Arr0 = Range(wm.Sheets(쉬트b).Cells(4, 1), wm.Sheets(쉬트b).Cells(끝행b, 1))
Arr1 = Range(wm.Sheets(쉬트b).Cells(4, 지수열), wm.Sheets(쉬트b).Cells(끝행b, 지수열))
Arr2 = Range(wm.Sheets(쉬트c).Cells(4, 지수열), wm.Sheets(쉬트c).Cells(끝행b, 지수열))
Arr3 = Range(wm.Sheets(쉬트b).Cells(4, 지수열 + 376), wm.Sheets(쉬트b).Cells(끝행b, 지수열 + 376))
Arr4 = Range(wm.Sheets(쉬트c).Cells(4, 지수열 + 376), wm.Sheets(쉬트c).Cells(끝행b, 지수열 + 376))
Arr5 = Range(wm.Sheets(쉬트d).Cells(243 + 4, 매수열 + 2), wm.Sheets(쉬트d).Cells(243 + 끝행d, 매수열 + 2))
Arr6 = Range(wm.Sheets(쉬트d).Cells(243 + 4, 매수열 + 1), wm.Sheets(쉬트d).Cells(243 + 끝행d, 매수열 + 1))
Arr7 = Range(wm.Sheets(쉬트b).Cells(4, 지수열 + 188), wm.Sheets(쉬트b).Cells(끝행b, 지수열 + 188))
Arr8 = Range(wm.Sheets(쉬트c).Cells(4, 지수열 + 188), wm.Sheets(쉬트c).Cells(끝행b, 지수열 + 188))

'.SetSourceData Source:=Range("$bd$210:$bi$932")
.FullSeriesCollection(1).XValues = Arr0

'.SeriesCollection.NewSeries
.FullSeriesCollection(1).Values = Arr1
.FullSeriesCollection(1).ChartType = xlLine
.FullSeriesCollection(1).AxisGroup = 1
'.SeriesCollection.NewSeries
.FullSeriesCollection(2).Values = Arr2
.FullSeriesCollection(2).ChartType = xlLine
.FullSeriesCollection(2).AxisGroup = 1
'.SeriesCollection.NewSeries
.FullSeriesCollection(3).Values = Arr3
.FullSeriesCollection(3).ChartType = xlLine
.FullSeriesCollection(3).AxisGroup = 1
'.SeriesCollection.NewSeries
.FullSeriesCollection(4).Values = Arr4
.FullSeriesCollection(4).ChartType = xlLine
.FullSeriesCollection(4).AxisGroup = 1

'.SeriesCollection.NewSeries
.FullSeriesCollection(5).Values = Arr5
.FullSeriesCollection(5).ChartType = xlLine
.FullSeriesCollection(5).AxisGroup = 1
'.SeriesCollection.NewSeries
.FullSeriesCollection(6).Values = Arr6
.FullSeriesCollection(6).ChartType = xlLine
.FullSeriesCollection(6).AxisGroup = 1
'.SeriesCollection.NewSeries
.FullSeriesCollection(7).Values = Arr7
.FullSeriesCollection(7).ChartType = xlColumnClustered
.FullSeriesCollection(7).AxisGroup = 2
'.SeriesCollection.NewSeries
.FullSeriesCollection(8).Values = Arr8
.FullSeriesCollection(8).ChartType = xlLine
.FullSeriesCollection(8).AxisGroup = 2

.HasTitle = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlSecondary).HasTitle = True

.ChartTitle.Caption = Sheets(쉬트m).Cells(ActiveCell.Row, 3)
.Axes(xlValue, xlPrimary).AxisTitle.Text = "지수 2년누적매매.전세 매수우위.매수 매매.전세 "
.Axes(xlValue, xlSecondary).AxisTitle.Text = "매매.전세 증감율"
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "년월"
'.Axes(XValues, xlPrimary).AxisTitle.Text = "년월"

.Axes(xlValue, xlPrimary).MinimumScale = -20
.Axes(xlValue, xlPrimary).MaximumScale = 180
'.Axes(xlCategory, xlPrimary).MajorUnit = 4
.Axes(xlValue, xlPrimary).MajorUnit = 10
.Axes(xlValue, xlSecondary).MinimumScale = -4
.Axes(xlValue, xlSecondary).MaximumScale = 1

.HasLegend = True
.Legend.Position = xlLegendPositionBottom
.SeriesCollection(1).Name = "매매지수"
.SeriesCollection(2).Name = "전세지수"
.SeriesCollection(3).Name = "매매2년누적"
.SeriesCollection(4).Name = "전세2년누적"
.SeriesCollection(5).Name = "매수우위"
.SeriesCollection(6).Name = "매수"
.SeriesCollection(7).Name = "매매증감"
.SeriesCollection(8).Name = "전세증감"

'RGB 표 https://www.rapidtables.org/ko/web/color/RGB_Color.html
.SeriesCollection(1).Format.Line.Visible = msoFalse
.SeriesCollection(1).Format.Line.Visible = msoTrue
.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 0, 255)
'.SeriesCollection(1).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(1).Format.Line.Weight = 2

.SeriesCollection(2).Format.Line.Visible = msoTrue
.SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(255, 0, 0)
'.SeriesCollection(2).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(2).Format.Line.Weight = 2

.SeriesCollection(3).Format.Line.Visible = msoTrue
.SeriesCollection(3).Format.Line.ForeColor.RGB = RGB(0, 102, 0)
'.SeriesCollection(3).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(3).Format.Line.Weight = 2

.SeriesCollection(4).Format.Line.Visible = msoTrue
.SeriesCollection(4).Format.Line.ForeColor.RGB = RGB(153, 0, 0)
'.SeriesCollection(4).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(4).Format.Line.Weight = 2

.SeriesCollection(5).Format.Line.Visible = msoTrue
.SeriesCollection(5).Format.Line.ForeColor.RGB = RGB(102, 204, 0)
.SeriesCollection(5).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(5).Format.Line.Weight = 2

.SeriesCollection(6).Format.Line.Visible = msoTrue
.SeriesCollection(6).Format.Line.ForeColor.RGB = RGB(255, 0, 255)
.SeriesCollection(6).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(6).Format.Line.Weight = 2

.SeriesCollection(7).Format.Line.Visible = msoTrue
.SeriesCollection(7).Format.Line.ForeColor.RGB = RGB(0, 0, 255)
'.SeriesCollection(7).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(7).Format.Line.Weight = 0.1

.SeriesCollection(8).Format.Line.Visible = msoTrue
.SeriesCollection(8).Format.Line.ForeColor.RGB = RGB(255, 0, 0)
'.SeriesCollection(8).Format.Line.DashStyle = msoLineSysDot 'msoLineSysDot msoLineSysDash
.SeriesCollection(8).Format.Line.Weight = 0.1

'.FullSeriesCollection(1).MarkerSize = 10
'.SeriesCollection(1).Interior.Color = "yellow"

End With

Sheets(쉬트m).Cells(갈행, 갈열).Select

'ActiveWindow.ScrollRow = 1
'SendKeys ("{down}")

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False

End Sub

오빠두엑셀-차트1.png

스크랩
공유
회원등급 : 4레벨
포인트 : 201 EP
총질문 : 7 개 (마감율 : 29%)
채택답변 : 0 개
전체 0

전체 7,755
번호 카테고리 제목 작성자 작성일 추천 조회
알림
🎉다양한 이벤트와 함께 진행하는, PPT 보고서 디자인 특강 안내 - 9/24 (토) 오후 9시~ (14)
오빠두엑셀 | 2022.09.08 | 추천 9 | 조회 2268
오빠두엑셀 2022.09.08 9 2268
공지사항 함수/공식
[신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (3)
오빠두엑셀 | 2022.08.04 | 추천 4 | 조회 1636
오빠두엑셀 2022.08.04 4 1636
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (93)
오빠두엑셀 | 2021.10.28 | 추천 123 | 조회 7368
오빠두엑셀 2021.10.28 123 7368
42434 VBA
New 셀레니움을 통한 엣지 호출 첨부파일 (1)
로고테라피 | 2022.09.25 | 추천 0 | 조회 19
로고테라피 2022.09.25 - 19
42432 VBA
New get_db 명령어 관련 질문드립니다 첨부파일 (1)
EXCELEXCEL | 2022.09.25 | 추천 0 | 조회 18
EXCELEXCEL 2022.09.25 - 18
42427 기능/도구
New 엑셀 '안전모드' 실행하는 방법 질문드립니다. 첨부파일 (2)
월마리아 | 2022.09.25 | 추천 0 | 조회 24
월마리아 2022.09.25 - 24
42426 VBA
New 사진대지 VBA 매크로 수정 엑셀파일 (1)
WWW | 2022.09.25 | 추천 0 | 조회 20
WWW 2022.09.25 - 20
42414 기능/도구
New 엑셀로 가능한지 여쭤봅니다. 엑셀파일첨부파일 (1)
naver_5f055a605ee7d | 2022.09.24 | 추천 0 | 조회 51
naver_5f055a605ee7d 2022.09.24 - 51
42405 함수/공식
New 엑셀 INDEX MATCH 함수 질문드립니다. (다중조건) 첨부파일 (4)
임천명 | 2022.09.24 | 추천 0 | 조회 43
임천명 2022.09.24 - 43
42396 함수/공식
New 함수조언 엑셀파일 (1) 답변완료
엑셀공부중 | 2022.09.24 | 추천 0 | 조회 39
엑셀공부중 2022.09.24 - 39
42395 함수/공식
New 함수 결과값 자동 갱신 질문입니다 엑셀파일 (2)
lifeti**** | 2022.09.24 | 추천 0 | 조회 36
lifeti**** 2022.09.24 - 36
42391 VBA
New 검색어와 동일한 결과값에 하이라이트 색깔 넣기 첨부파일 (1)
조지아 칸타타 | 2022.09.23 | 추천 0 | 조회 40
조지아 칸타타 2022.09.23 - 40
42390 VBA
New 검색어 입력시 같은 정보가 2개 반복되어... 첨부파일
조지아 칸타타 | 2022.09.23 | 추천 0 | 조회 28
조지아 칸타타 2022.09.23 - 28
42386 함수/공식
New 조건부서식 오류 엑셀파일첨부파일 (3)
Ngw77 | 2022.09.23 | 추천 0 | 조회 36
Ngw77 2022.09.23 - 36
42385 기능/도구
New 파일 가로로 통합하기(합치기) 질문입니다 첨부파일 (1)
감귤쫀드기 | 2022.09.23 | 추천 0 | 조회 36
감귤쫀드기 2022.09.23 - 36
42379 문서서식
New 가로로 작업했는데, 내용 보존?하면서 세로로 쉽게 바꿀 수 있는 방법이 있나요?? (1)
앨리 | 2022.09.23 | 추천 0 | 조회 50
앨리 2022.09.23 - 50
42378 차트/그래프
New 강우-유출량 그래프 분석 엑셀파일 (1)
chanyk | 2022.09.23 | 추천 0 | 조회 45
chanyk 2022.09.23 - 45
42377 함수/공식
New 한도액에서의 지원금 정산하기 엑셀파일 (2)
송인숙 | 2022.09.23 | 추천 0 | 조회 31
송인숙 2022.09.23 - 31
42374 함수/공식
New 각기 다른셀에 값 입력시 한셀에 날짜 자동 나타내기 (2)
MC쿠마 | 2022.09.23 | 추천 0 | 조회 26
MC쿠마 2022.09.23 - 26
42372 함수/공식
New 조건별 날짜계산 함수 계산 엑셀파일 (2) 답변완료
Ngw77 | 2022.09.23 | 추천 0 | 조회 41
Ngw77 2022.09.23 - 41
42367 기능/도구
New 엑셀2019에서 shift + 스크롤 (시트 좌우 스크롤) 되는건가요? 첨부파일 (4) 답변완료
월마리아 | 2022.09.22 | 추천 0 | 조회 44
월마리아 2022.09.22 - 44
42366 구글시트
New 스프레드 시트 필터함수 엑셀파일첨부파일 (5) 답변완료
거꾸로문 | 2022.09.22 | 추천 0 | 조회 48
거꾸로문 2022.09.22 - 48
42362 함수/공식
New NaverFinanceHistory 함수 연결 데이터 갱신 질문입니다 엑셀파일첨부파일
lifeti**** | 2022.09.22 | 추천 0 | 조회 34
lifeti**** 2022.09.22 - 34
42358 VBA
New VBA 텍스트 파일 저장 후 불러오기 질문드립니다. 엑셀파일
LovelyK | 2022.09.22 | 추천 0 | 조회 42
LovelyK 2022.09.22 - 42
42355 함수/공식
New 근속년수 산출 관련 문의 (4)
꼬맹이영 | 2022.09.22 | 추천 0 | 조회 61
꼬맹이영 2022.09.22 - 61
42354 함수/공식
New 세가지의 조건을 만족하는 값 불러오기 엑셀파일 (3) 답변완료
뎡이 | 2022.09.22 | 추천 0 | 조회 70
뎡이 2022.09.22 - 70
42348 차트/그래프
New 엑셀 일일 데이터관리 차트를 만들려고 합니다,,, 첨부파일 (2)
MC쿠마 | 2022.09.22 | 추천 0 | 조회 55
MC쿠마 2022.09.22 - 55
42342 기능/도구
New 엑셀 셀의 열너비, 행높이 고정 문의드립니다. (4)
함수시르미 | 2022.09.22 | 추천 0 | 조회 54
함수시르미 2022.09.22 - 54
42341 함수/공식
New  증가 또는 하락하는 함수 문의 합니다. 엑셀파일 (1) 답변완료
천형기 | 2022.09.22 | 추천 0 | 조회 44
천형기 2022.09.22 - 44
42336 차트/그래프
New 차트 세로줄 변동 되게 하고 싶습니다. 첨부파일 (3) 답변완료
성호 | 2022.09.22 | 추천 0 | 조회 32
성호 2022.09.22 - 32
42332 기능/도구
New 여러 행 데이터 한 행으로 통합하는 방법 첨부파일 (4)
엑셀고수왕소취 | 2022.09.21 | 추천 0 | 조회 56
엑셀고수왕소취 2022.09.21 - 56
42330 함수/공식
New STOCKHISTORY 거래량 오류 질문입니다 첨부파일 (2) 답변완료
lifeti**** | 2022.09.21 | 추천 0 | 조회 45
lifeti**** 2022.09.21 - 45
42327 구글시트
New 도서목록 검색하기 엑셀파일 (4) 답변완료
거꾸로문 | 2022.09.21 | 추천 0 | 조회 46
거꾸로문 2022.09.21 - 46