아래 코드는 현재 파워포인트 파일의 모든 슬라이드에서
개체의 이름이 'Google shape;'로 시작하는 모든 개체를 찾아
그 안의 텍스트를 같은 이름의 워드 파일에 계속 쭉 출력해주는 예시입니다.
찾을 개체 이름에는 *나 ? 같은 문자를 사용할 수 있습니다.
워드 문서에 출력시 각 슬라이드 번호는 구분을 위해 진한 글씨로 출력합니다.
기본 글자크기는 15입니다.
Option Explicit
'찾을 도형 이름
'Const TargetShape = "텍스트 개체틀 1*"
Const TargetShape = "Google Shape;*"
Sub Extract2Docx()
'Dim W As Word.Application, D As Word.Document
Dim W As Object, D As Object
Dim n As Integer, m As Integer
Dim T As Variant
Dim docFile As String
Dim sld As Slide, shp As Shape
Dim myRange As Object
'Dim myRange As Word.Range
docFile = ActivePresentation.FullName
docFile = Left(docFile, InStrRev(docFile, ".")) & "docx"
Set W = CreateObject("Word.Application")
W.Visible = True
Set D = W.Documents.Add(Visible:=True)
Set myRange = D.Content
myRange.Font.Size = 15
'슬라이드내 개체 순환
For Each sld In ActivePresentation.Slides
'슬라이드 구분 출력
With myRange
.InsertParagraphAfter
.Collapse 0 'Word.wdCollapseEnd
.Text = "Slide #" & sld.SlideIndex
.Font.Bold = True
.Collapse 0 'Word.wdCollapseEnd
.InsertParagraphAfter
End With
For Each shp In sld.Shapes
'도형이름이 특정이름과 비슷하다면 내용 출력
If shp.Name Like TargetShape Then
If shp.HasTextFrame Then
If shp.TextFrame.HasText Then
With myRange
.InsertAfter shp.TextFrame.TextRange
.InsertAfter vbVerticalTab
End With
End If
End If
End If
Next shp
Next sld
'문서 저장 및 종료
D.SaveAs2 FileName:=docFile
'D.Close True '저장
Set D = Nothing
'W.Quit False
Set W = Nothing '초기화
End Sub
샘플 ppt 파일입니다.
샘플 파일의 템플릿은 PPTMON.COM 입니다.
( Presentation template by PPTMON.COM )
'DOC+VBA' 카테고리의 다른 글
워드 문서 1페이지당 그림 한 장 씩 일괄 삽입 (1) | 2024.10.11 |
---|---|
폴더내 모든 워드문서의 읽기전용 속성 해제 (0) | 2024.02.01 |
워드 XML Mapping을 이용한 일괄 텍스트 수정, 관리 (0) | 2024.01.31 |
엑셀연동 워드문서 일괄생성 (메일머지 기능) (0) | 2021.06.03 |
워드(Doc)문서를 PPT 슬라이드로 변환하기 (7) | 2020.02.08 |
최근댓글