효투의 세상 로딩중...
효투의 세상 로딩중...
반응형

보고서는 대부분

MS 워드나 한글 등으로 나가는데

보고서엔 이미지를 넣을 일이 많다. 근데 하나하나 다 바꾸다 보면 몇개씩 빠지는게 있기마련

그리고 하나하나 바꿀려면

가로세로비율 해제 > 높이 수정 > 너비 수정 > 가로 정렬 > 캡션 넣기 등

그림 한장에 들어가는 수고가 너무 많다

그래서 여러 정보들을 수집해서 VBA 매크로를 이용해서 한번에! 자동화할 수 있는 방법을 찾았다.

 

Alt+F11 VBA 실행

Alt+I 삽입 메뉴 열기 -> 모듈

 

 

선택한 이미지만 너비 수정

'선택한 한장의 이미지만 너비 수정
Sub Selected_image_w_board()
With Selection.InlineShapes(1) ' 가로 종횡비 고정 x
.LockAspectRatio = False
.Width = CentimetersToPoints(10.5) 'cm 단위 너비 사이즈
With .Borders
.OutsideColor = wdColorBlack '그림테두리 검정색
.OutsideLineStyle = wdLineStyleSingle '그림테두리 실선
.OutsideLineWidth = wdLineWidth075pt '그림테두리 두께 0.75pt로 통일
End With
End With
End Sub

 

선택한 이미지만 높이 수정

Sub Selected_image_h_board()
With Selection.InlineShapes(1) ' 가로 종횡비 고정 x
.LockAspectRatio = False
.Height = CentimetersToPoints(9) ' 높이 포인트
With .Borders
.OutsideColor = wdColorBlack '그림테두리 검정색
.OutsideLineStyle = wdLineStyleSingle '그림테두리 실선
.OutsideLineWidth = wdLineWidth075pt '그림테두리 두께 0.75pt로 통일
End With
End With
End Sub

 

선택한 이미지만 높이, 너비, 가운데 정렬

Sub sel_All()
With Selection.InlineShapes(1) ' 가로 종횡비 고정 x
.LockAspectRatio = False
.Width = CentimetersToPoints(10.5) '너비 10.5 지정
.Height = CentimetersToPoints(9) '높이 9 지정
With .Borders
.OutsideColor = wdColorBlack '그림테두리 검정색
.OutsideLineStyle = wdLineStyleSingle '그림테두리 실선
.OutsideLineWidth = wdLineWidth075pt '그림테두리 두께 0.75pt로 통일
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter ' 가운데 정렬
End With
End With
End Sub

 

모든 이미지 너비 수정

Sub set_image_width_board()
For i = 1 To ActiveDocument.InlineShapes.Count 'for 문으로 1번째 그림부터 마지막 그림까지
With ActiveDocument.InlineShapes(i)
.Width = CentimetersToPoints(17.1) ' 그림너비 17.1cm로 통일
With .Borders
.OutsideColor = wdColorBlack '그림테두리 검정색
.OutsideLineStyle = wdLineStyleSingle '그림테두리 실선
.OutsideLineWidth = wdLineWidth075pt '그림테두리 두께 0.75pt로 통일
End With
End With
Next
End Sub

 

모든 이미지 높이 수정

Sub set_image_height_board()
For i = 1 To ActiveDocument.InlineShapes.Count 'for 문으로 1번째 그림부터 마지막 그림까지
With ActiveDocument.InlineShapes(i)
.Height= CentimetersToPoints(9) ' 그림높이 9cm로 통일
With .Borders
.OutsideColor = wdColorBlack '그림테두리 검정색
.OutsideLineStyle = wdLineStyleSingle '그림테두리 실선
.OutsideLineWidth = wdLineWidth075pt '그림테두리 두께 0.75pt로 통일
End With
End With
Next
End Sub

 

그리고 위의 코드들을 참고하여 내가 필요해서 수정한 코드

모든 이미지 너비, 높이, 가운데 정렬

Sub all_all()
For i = 1 To ActiveDocument.InlineShapes.Count 'for 문으로 1번째 그림부터 마지막 그림까지
With ActiveDocument.InlineShapes(i)
.Height= CentimetersToPoints(9) ' 그림 높이 9 통일
.Width = CentimetersToPoints(17.1) ' 그림 너비 17.1 통일
With .Borders
.OutsideColor = wdColorBlack '그림테두리 검정색
.OutsideLineStyle = wdLineStyleSingle '그림테두리 실선
.OutsideLineWidth = wdLineWidth075pt '그림테두리 두께 0.75pt로 통일
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter '가운데정렬
End With
End With
Next
End Sub

 

반응형

그리고 

모든 이미지

가로세로비율 고정 해제

Sub UnlockAspectRatio()
Dim shp As Shape
Dim ish As InlineShape
For Each shp In ActiveDocument.Shapes
If shp.Type = msoPicture Or _
shp.Type = msoLinkedPicture Then
shp.LockAspectRatio = False
End If
Next shp
For Each ish In ActiveDocument.InlineShapes
If ish.Type = wdInlineShapePicture Or _
ish.Type = wdInlineShapeLinkedPicture Then
ish.LockAspectRatio = False
End If
Next ish
End Sub

 

 

그리고

모든 이미지 캡션 달기 및 가운데 정렬

Sub CaptionPictures()
Dim xPic As InlineShape
For Each xPic In ActiveDocument.InlineShapes
xPic.Select
Selection.InsertCaption "그림", "", "", wdCaptionPositionBelow, 0
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter ‘중앙정렬
Next
End Sub

 

이 캡션 달기는 약간의 사전작업이 필요한데 

일단 그림을 우클릭 해서 캡션 삽입 -> 새 레이블로 캡션의 시작 레이블을 설정해줘야한다.

위 코드를 보면 Selection.InsertCaption 첫번째 인수에 "그림" 이라고 되어있는데

만약 "사진"으로 하고싶다면 새 레이블로 사진 레이블을 생성해줘야 정상적으로 동작함

 

그리고 만약

캡션달기 후에  아래 사진처럼 알 수 없는 작은 사각형들이 여기저기 붙어있다면

 

캡션이 달린 곳부터 시작해서 쭈욱 끝까지 드래그로 지정해준 다음에

단락 -> 페이지 매김의 4가지 옵션을 모두 체크 해제 해주면 해결됨

 

또 만약 달린 캡션의 폰트가 맘에 안든다면 서식에서 수정을 해준 다음 해야함 모든언어 수정!

 

그리고 선택한 이미지만 너비 수정 및 높이 수정을 하고싶은데

매번 VBA 매크로를 해주는 것도 일이다.

래서 단축키를 지정해주면 그 단축키를 누르는 것 만으로 바로 수정이 가능하다

옵션 -> 리본 사용자 지정

매크로 선택 후 사용자 지정

 

매크로에서 자신이 생성한 Sub 매크로 이름 누른 후 새 바로가기키에 할당 나는 Alt+R 로 해둠

 

그럼 이제 워드로 돌아가서 

이미지 선택한 다음 Alt+R 만 누르면

사이즈와 가운데정렬 지정이 딱 된다.

 

반응형
  • hyotwo7658@gmail.com

복사 완료 👍