워드 문서의 1페이지마다 사진(또는 사진 설명 포함)을 하나씩 일괄로 삽입하는 방법입니다.
매크로 안쓰는 방법
1. 파워포인트에서 삽입 > 사진 앨범 기능으로 사진 100장 일괄 삽입
2. 다른이름으로 저장이나 내보내기에서 PDF로 저장
3. MS워드에서 PDF파일 불러오기 > 자동 변환
또는 아래와 같은 VBA를 이용할 수 있습니다.
ChatGPT코드를 활용하였으나 오류가 다수 발생하여 대폭 수정하였습니다.
더보기
Option Explicit
Sub InsertImagesCenteredOnEachPage()
Dim imgFolder As String
Dim imgFile As String
Dim imgPath As String, sExt As String
Dim doc As Document
Dim shape As shape, ishp As InlineShape
' 이미지가 저장된 폴더 경로
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisDocument.Path & "\"
.AllowMultiSelect = False
.ButtonName = "현재 폴더 선택"
If .Show = -1 Then imgFolder = .SelectedItems(1)
End With
If imgFolder = "" Then Exit Sub
' 현재 문서 설정
Set doc = ActiveDocument
doc.Content.ParagraphFormat.Alignment = wdAlignParagraphCenter
' 폴더 내의 첫 번째 이미지 파일을 찾기
imgFile = Dir(imgFolder & "\*.*")
' 이미지가 더 이상 없을 때까지 반복
Do While Len(imgFile) > 0
sExt = LCase(Right(imgFile, 4))
If sExt = ".jpg" Or sExt = ".png" Or sExt = ".gif" Then
imgPath = imgFolder & "\" & imgFile
' 이미지 삽입
Set shape = doc.Shapes.AddPicture(FileName:=imgPath, LinkToFile:=False, SaveWithDocument:=True)
' 이미지 정렬
shape.Name = imgFile
shape.ConvertToInlineShape
Set ishp = doc.InlineShapes(doc.InlineShapes.Count)
With doc.PageSetup
ishp.LockAspectRatio = msoTrue
'ishp.Width = .PageWidth - .TopMargin - .BottomMargin - 50
ishp.Height = .PageHeight - .LeftMargin - .RightMargin - 50
End With
doc.Content.InsertAfter vbCrLf & imgFile & vbCrLf '파일명
doc.Range(doc.Content.End - 1, doc.Content.End - 1).Select
'doc.Content.InsertBreak wdPageBreak
End If
' 다음 이미지 파일로 이동
imgFile = Dir
Loop
End Sub
Alt+F11 창에서 삽입 > 모듈을 눌러 모듈을 하나 추가한 후에 위 코드를 붙여넣고 코드창을 닫습니다.
Alt+F8로 실행하고 폴더를 선택하면 폴더 내의 모든 이미지 1장과 그 아래에 파일명을 삽입합니다.
미리 페이지 방향을 가로나 세로로 선택하고 실행하세요.
샘플파일 참고하세요.
'DOC+VBA' 카테고리의 다른 글
워드문서 열 때 자동으로 마지막 편집 페이지로 이동하기 (0) | 2025.01.09 |
---|---|
워드문서 일정 페이지씩 분할 저장하기 (0) | 2024.12.31 |
폴더내 모든 워드문서의 읽기전용 속성 해제 (0) | 2024.02.01 |
워드 XML Mapping을 이용한 일괄 텍스트 수정, 관리 (0) | 2024.01.31 |
슬라이드의 특정 이름의 개체 속의 텍스트를 워드 문서로 출력 (1) | 2023.12.06 |
엑셀연동 워드문서 일괄생성 (메일머지 기능) (0) | 2021.06.03 |
워드(Doc)문서를 PPT 슬라이드로 변환하기 (7) | 2020.02.08 |
최근댓글