어느 경영학도의 의뢰이다.
고등학교 이후에 오랜만의 행렬을 공부하였다.
이 의뢰의 핵심은 행렬이 늘어나면서 Table 을 크기가 변화하기에 그걸을 능동적으로 잡을 필요가 있었다.
그 이후에는 테이블을 통해서 차트를 생성해야 하고
그 차트가 유저폼에도 나와야 하는 의뢰이다.
1 능동적인 테이블을 잡기위해서는 행의 숨김과 보이기를 반복하는 코드를 사용하였고
2. 차트를 그리기 위해서 데이터의 값을 입력한 후 그 결과값을 계속적으로 가져와서 차트를 그리기 위한 테이블을 만드는 자료를 구성하였다.
다음은 차트 생성을 위한 코드이다.
더보기
Sub Chart()
Dim rngChart As Range
Dim rngData As Range
Dim strPath As String '폴더의 경로를 넣을 변수
Dim strFile As String '임시 그림파일 경로 + 이름 넣을 변수
Dim cht As Chart
Dim shp As Shape
For Each shp In ActiveSheet.Shapes '= 차트 초기화 / 기존 차트 모두 삭제
If shp.Type = msoChart Then shp.Delete
Next shp
Set rngChart = [j4].MergeArea '= 차트 출력위치
'= 차트 데이터 영역
Set rngData = Union(Range([e4], Cells(Rows.Count, "f").End(3)), Range([h4], [h4].End(4)))
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select '=선형 분포도 삽입
Set cht = ActiveChart '= 현재 선택된 차트 선언
With cht
.SetSourceData Source:=rngData '= 차트데이터
.chartTitle.Text = "MEAN-VAR EFFICIENT" '= 차트제목
.HasLegend = True '= 범례를 표시하겠다.
.Legend.Position = xlLegendPositionBottom '= 범례위치는 아래로
.SeriesCollection(1).Name = "Return" '= 각 범례의 이름
.SeriesCollection(2).Name = "Capital Allocation Line Ret"
.Axes(xlCategory).TickLabels.NumberFormatLocal = "0.0" '= X축 서식
.Axes(xlValue).TickLabels.NumberFormatLocal = "0.0" '= Y축 서식
strPath = ActiveWorkbook.Path & "\" '이 엑셀파일이 저장된 폴더의 경로
strFile = "chart.gif" '경로 + 파일이름 + 시트이름 + .gif로 저장
If Dir(strPath & strFile) <> "" Then Kill strPath & strFile
.Export strPath & strFile, filtername:="GIF"
With .Parent '= 차트 위치
.Left = rngChart.Left
.Top = rngChart.Top
.Width = rngChart.Width
.Height = rngChart.Height
End With
End With
[m23].Select
Export_file
End Sub
3. 마지막으로는 유저폼에 차트를 가져와야 하는데,
유저폼에 사진을 가져오는 코드는 예전에 본인이 포스팅한 글을 한번 살펴보길 바란다.
https://1stminokingdom.tistory.com/79
내일은 개발자인 당신의 꿈을 응원한다.
'주문제작의뢰' 카테고리의 다른 글
[스프레드시트] 대시보드 만들기#2 (0) | 2023.10.10 |
---|---|
[스프레드시트] 대시보드 만들기 (0) | 2023.10.08 |
[의뢰] 한글자동화 (0) | 2023.08.31 |
[의뢰] CRUD 의뢰 (0) | 2023.08.06 |
[의뢰] 쇼핑몰 사진 크롤링 및 이미지 사이즈 일괄변경 (0) | 2022.08.26 |
댓글