관련: 지식인
지도의 면적을 구하기 위해 구분구적법을 사용할 수 있는데
파워포인트에서 지도 도형 내부를 정사각형으로 자동으로 채우는 방법입니다.
1. 일반적인 방법으로는 네모 도형으로 슬라이드를 채우고 나서
수작업으로 바깥쪽을 지워주어야겠습니다.
아래 영상을 참고하세요.
https://youtu.be/-EDF7nIvugQ?t=120
2. VBA를 이용하는 능력이 된다면
지도 도형과 네모도형을 충돌체크 등을 이용해서 찾아내도록
해볼 수 있겠습니다.
하지만 연구가 좀 필요하고 VBA로는 속도가 잘 안나옵니다.
시간을 내어 위와 같이 테스트해보았습니다.
Map 1이라는 지도 도형을 만들고 그 위에
FillBox 매크로를 이용해 슬라이드에 사각형들을 가득 채워넣고
(채우고 나서 그룹으로 묶고 정사각형으로 만들고 크기를 줄이고 다시 그룹 해제)
(사각형 개수를 30,30 등으로 입력하면 Map 1 도형에 맞게 사각형을 그려줌.)
RemoveOuterArea 매크로를 실행하면
Map 1 이라는 도형과 충돌 테스트를 해서 겹치지 않는 외부에 있는 사각 도형들을 삭제해줍니다.
(SelectInnerArea는 지도 도형 내부에 있는 도형만 선택할 수도 있습니다.)
Sub RemoveOuterArea()
Dim SLD As Slide
Dim mShp As Shape
Dim i As Integer
If ActiveWindow.Selection.Type = ppSelectionSlides Then Exit Sub
Set SLD = ActiveWindow.View.Slide
ActiveWindow.Selection.Unselect
Set mShp = SLD.Shapes("Map 1")
For i = SLD.Shapes.Count To 1 Step -1
If Not mShp Is SLD.Shapes(i) Then
If Not MergeTest(SLD.Shapes(i), mShp) Then
SLD.Shapes(i).Delete
End If
End If
Next i
End Sub
Function MergeTest(A As Shape, B As Shape) As Boolean
Dim SLD As Slide
Dim AA As Shape, BB As Shape
Dim oldCnt As Long, newCnt As Long
Set SLD = A.Parent
Set AA = A.Duplicate(1): DoEvents
AA.Left = A.Left
AA.Top = A.Top
Set BB = B.Duplicate(1): DoEvents
BB.Left = B.Left
BB.Top = B.Top
oldCnt = SLD.Shapes.Count
'도형병합(교차하기)
SLD.Shapes.Range(Array(AA.ZOrderPosition, BB.ZOrderPosition)).MergeShapes msoMergeIntersect
newCnt = SLD.Shapes.Count
If newCnt = oldCnt - 1 Then
SLD.Shapes(newCnt).Delete
MergeTest = True
Else
MergeTest = False
End If
End Function
실행 영상:
실행 결과:
위 방법을 실제 지도에 적용해보겠습니다.
여기서는 의미 있게 동도와 서도로 이루어진 '독도' 지도에 위 방법을 적용해보았습니다.
지도 모양이 복잡하고 슬라이드에서 차지하는 면적이 클수록 시간이 오래 걸립니다.
실행 결과 가로, 세로 0.43cm 짜리 정사각형 도형을 372개 사용하였습니다.
현재는 지도 도형에 스치기만 해도 정사각형 도형이 추가되었기 때문에 실제 면적보다 넓은 영역을 차지하겠습니다.
추가로 위 방법을 응용하여 텍스트를 도형으로 만든 다음
사각형 도형과 교차해서 나만의 글자 모양을 만들 수도 있습니다.
텍스트상자에 '독도'라고 입력하고 빈 텍스트 상자를 그리고 서로 도형병합(빼기)를 해주면
독도라는 글자가 벡터 도형으로 변환됩니다. 이 도형의 이름을 Map 1 이라고 이름을 변경합니다.
이 글자 도형과 사각형 도형을 교차시킵니다.
그리고 위 매크로를 실행해서 글자 영역만 도형을 남깁니다.
아래처럼 나만의 글자가 완성되었습니다.
샘플 파일 첨부합니다.
'PPT+VBA' 카테고리의 다른 글
현재 선택된 도형을 클립보드 이미지로 채우기 (0) | 2023.01.29 |
---|---|
[엑셀연동] 봉투 주소 일괄 출력 (1) | 2023.01.18 |
TTS활용 영어 단어 풀이 슬라이드 자동 생성 (0) | 2022.12.19 |
엑셀데이터 연동 PPT 슬라이드 만들기 예제와 구글 TTS 발음 다운로드 (0) | 2022.12.02 |
PPT 시작할 때 매크로 파일들 자동으로 열기 (0) | 2022.11.16 |
오디오 Fade Out 효과 구현 (0) | 2022.11.13 |
랜덤 사진 슬라이드쇼 (1) | 2022.11.03 |
PPT 합치기 (1) | 2022.10.31 |
최근댓글