[엑셀 매크로] 일정한 간격으로 증/감소 원 그리기
2021. 1. 23. 14:49ㆍ사무용 엑셀-매크로
일정한 간격으로 증가/ 감소하는 원을 그리기
실행 이미지 / 실행 화면
일정한 간격으로 증 / 감소 원 그리기 코드아래 코드
Option Explicit
Public Sub setting()
Dim tmp As Single
Dim i As Integer
Dim left As Single
Dim top As Single
Dim diameter As Single
tmp = 10
For i = 3 To 8
If i = 3 Then
left = 150 + i
top = 150 + i
diameter = i * tmp
Else
left = left + (diameter - (i * tmp)) / 2
top = top + (diameter - (i * tmp)) / 2
diameter = i * tmp
End If
Call drawCircle(left, top, diameter)
Next i
End Sub
Sub drawCircle(left As Single, top As Single, diamater As Single)
ActiveSheet.Shapes.AddShape(msoShapeOval, left, top, diamater, diamater).Select
Selection.ShapeRange.Fill.Visible = msoFalse
With Selection.ShapeRange.Line
.ForeColor.ObjectThemeColor = msoThemeColorText1
End With
With Selection.ShapeRange.Line
.ForeColor.ObjectThemeColor = msoThemeColorText1
End With
End Sub
코드 수정 시 참조 사항
1. 원의 개수를 수정하고 싶을 때
For i = 3 To 8
위 부분에서 "8" 부분을 수정하면 됨. 혹은 "3"부분을 수정하거나.
원의 개수는 (a To a1) 일 때, (a1 - a)+1 만큼 그려지기 때문에 이 부분을 염두하면 된다.
2. 원의 위치를 수정하고 싶을 때
left = 150 + i
top = 150 + i
위 부분에서 left 150 , top 150 대신 다른 값을 설정하면 된다. (left, top이 x,y 역할을 하고 있는 것.)
3. 원의 지름/ 지름의 간격을 수정하고 싶을 때
tmp = 10
해당 부분을 수정하면 됨. tmp는 일종의 지름의 간격.
원은 (3 To 8) => * tmp
원의 반지름은 30,40,50,60,70,80 이렇게 그려진다.
tmp 를 20으로 수정한다면
원은 (3 To 8) => * tmp
원의 반지름은 60,80,100,120,140,160 이렇게 그려진다.
4. 원의 정보를 수정하고 싶을 때
ActiveSheet.Shapes.AddShape(msoShapeOval, left, top, diamater, diamater).Select
Selection.ShapeRange.Fill.Visible = msoFalse
With Selection.ShapeRange.Line
.ForeColor.ObjectThemeColor = msoThemeColorText1
End With
With Selection.ShapeRange.Line
.ForeColor.ObjectThemeColor = msoThemeColorText1
End With
해당부분을 수정하면 됨.
해당 원의 추가 세팅에 대해서 궁금한 사람은 댓글 달아주세요.
'사무용 엑셀-매크로' 카테고리의 다른 글
[사무용 엑셀 매크로] 사각형 그리기 #1 (기본 사각형 그리기) (0) | 2021.02.28 |
---|---|
[사무용 엑셀 매크로] 조건에 맞춰서 표의 칸 색상 변경 (0) | 2021.02.20 |
[사무용 엑셀 매크로] 조건에 맞춰서 표의 글씨색 변경 (0) | 2021.02.19 |
[사무용 엑셀] 입력 날짜에 맞는 요일 산출 (0) | 2021.01.26 |
[사무용 엑셀 매크로] 자동으로 날짜 채우기, 색상 변경 (0) | 2020.06.15 |