파워포인트를 사용하다보면 도식을 사용할 일이 많은데, 페이지에 원하는 수많큼 동일한 도형을 배치해야 하는 경우가 있다.
예를 들면 아래와 같이 말이다.
사이즈를 적당히 맞추려면, 적잖이 귀찮은 작업이 될 수도 있어, 가이드 도형을 만들 수 있는 VBA를 짜볼까 하다가, 그냥 chatGPT에게 요청했더니 아주 소름끼치게 만들어 냈다.
요구사항은 좌우 여백 30px을 주고, 도형 사이엔 10px의 여백을 줄 것이라고 했더니, 색도 반투명으로 넣고, 아주 소름끼치도록 완벽하게 해줬다.
사용된 코드는 아래와 같다.
Sub AddGuidesAsRectangles()
Dim slide As slide
Dim guideRect As Shape
Dim divisions As Integer
Dim slideWidth As Single
Dim slideHeight As Single
Dim gap As Single
Dim spacing As Single
Dim leftMargin As Single
Dim i As Integer
' 사용자로부터 등분할 숫자 입력 받기
divisions = InputBox("몇 등분할까요?", "가이드라인 등분 설정", 3)
' 입력된 숫자가 1보다 작은 경우 처리
If divisions < 1 Then
MsgBox "등분할 숫자는 1 이상이어야 합니다.", vbExclamation
Exit Sub
End If
' 현재 슬라이드 가져오기
Set slide = ActivePresentation.Slides(1) ' 첫 번째 슬라이드
' 슬라이드의 너비와 높이 가져오기
slideWidth = slide.Master.Width
slideHeight = slide.Master.Height
' 여백과 간격 설정
leftMargin = 30
spacing = 10
' 각 도형의 너비 계산
gap = (slideWidth - leftMargin * 2 - (divisions - 1) * spacing) / divisions
' 가이드라인 추가 (직사각형)
For i = 0 To divisions - 1
Set guideRect = slide.Shapes.AddShape(msoShapeRectangle, leftMargin + (gap + spacing) * i, 0, gap, slideHeight)
With guideRect
.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 빨간색
.Fill.Transparency = 0.5 ' 반투명
.Line.Visible = msoFalse ' 선 숨기기
End With
Next i
End Sub
주석까지 깔끔하게, 이제 취미로 하던 VBA 만들던 것도 그만둘때가 됐나보다.
끝.