1. 파워포인트 슬라이드를 MS Word Document (.docx)로 저장하는 매크로
쓸모가 있을 지 모르겠습니다만,
슬라이드는 파일-내보내기에서 개요/서식있는 RTF 또는 Word Handout(유인물) 형식으로 내보낼 수 있지만
RTF형식은 개요만 저장하거나 이미지나 표 등 내용은 저장하지 않습니다.
워드형식 Handout 내보내기는 모든 슬라이드를 작은 이미지들로 저장해서 편집도 불가능합니다.
파워포인트 슬라이드 형태를 유지하고 텍스트 내용도 유지하는 방법입니다.
바로 개체를 모두 선택해서 복사해서 워드 문서에 붙이기 하는 것입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
Option explicit
Sub CopySlide2Word()
Dim pres As Presentation
Dim sld As Slide
Dim shp As Shape
Dim docFile As String
Dim Word As Word.Application
Dim doc As Word.Document
Dim page As Word.Pages
Dim rng As Word.Range
Dim para As Word.Paragraph
'On Error GoTo Oops:
Set pres = ActivePresentation
docFile = pres.Path & "\" & Left(pres.Name, InStrRev(pres.Name, ".") - 1) & ".docx"
Set Word = New Word.Application
If Word Is Nothing Then Exit Sub
Set doc = Word.Documents.Add
If pres.PageSetup.SlideOrientation = msoOrientationHorizontal Then _
doc.PageSetup.Orientation = wdOrientLandscape
Word.Visible = True
For Each sld In pres.Slides
If sld.SlideIndex > 1 Then
Word.Selection.EndKey wdStory
Word.Selection.InsertNewPage
End If
sld.Select
For Each shp In sld.Shapes
'If shp.HasTextFrame Then
' Set para = doc.Paragraphs.Add
' para.Range.Text = shp.TextFrame.TextRange
'End If
shp.Select msoFalse
Next shp
ActiveWindow.Selection.Copy
Set para = doc.Paragraphs.Add
para.Range.PasteAndFormat (wdFormatOriginalFormatting)
'Word.Selection.PasteAndFormat (wdFormatOriginalFormatting)
Next sld
doc.SaveAs2 docFile
Oops:
If Err.Number Then MsgBox Err.Description
'If Not Word Is Nothing Then Word.Quit: Set Word = Nothing
End Sub
|
cs |
슬라이드가 가로형태인 경우 워드 문서도 가로로 바꿔줍니다.
=>지식인 링크
2. 파워포인트를 .PDF로 출력하는 매크로
매크로는 아래 코드가 핵심입니다.
pres.ExportAsFixedFormat Path:=pdfFile, FixedFormatType:=ppFixedFormatTypePDF, RangeType:=ppPrintSelection
실행화면입니다. 슬라이드를 먼저 선택하고 Alt-F8 로 매크로를 실행하세요
코드 아래부분에는 선택된 슬라이드를 바로 프린트하는 방법도 들어 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
Option Explicit
Sub Save2PDF()
Dim pres As Presentation
Dim sld As Slide, sldRng As SlideRange
Dim pdfFile As String
Dim FromTo As String
Dim PR As PrintRange
Dim SPR As String
SPR = Chr(92) ' character '\'
On Error GoTo Oops:
Set pres = ActivePresentation
pdfFile = pres.Path & SPR & Left(pres.Name, InStrRev(pres.Name, ".") - 1)
Set sldRng = ActiveWindow.Selection.SlideRange
If sldRng.Count > 1 Then MsgBox "선택된 슬라이드가 없습니다."
If sldRng.Count = 1 Then FromTo = sldRng(1).SlideIndex _
Else FromTo = sldRng(1).SlideIndex & "-" & sldRng(sldRng.Count).SlideIndex
pdfFile = pdfFile & "_" & FromTo & ".pdf"
'선택된 슬라이드만 저장
pres.ExportAsFixedFormat Path:=pdfFile, FixedFormatType:=ppFixedFormatTypePDF, _
Intent:=ppFixedFormatIntentPrint, RangeType:=ppPrintSelection
'일부 영역만 선택해서 프린트, 저장할 경우
With pres.PrintOptions
.Ranges.ClearAll
'.RangeType = ppPrintSlideRange
Set PR = .Ranges.Add(Start:=sldRng(1).SlideIndex, End:=sldRng(sldRng.Count).SlideIndex)
End With
'pres.ExportAsFixedFormat Path:=pdfFile, FixedFormatType:=ppFixedFormatTypePDF, _
Intent:=ppFixedFormatIntentPrint, RangeType:=ppPrintSlideRange, PrintRange:=PR
'pres.PrintOut
Oops:
If Err Then MsgBox Err.Description
End Sub
|
cs |
=> 지식인 링크
3. 일반 텍스트(.txt)로 저장하는 매크로
텍스트만 추출해서 일반 TEXT파일에 저장합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
Sub ExtractText()
Dim pres As Presentation
Dim sld As Slide
Dim shp As Shape
Dim handle As Integer
Dim txtFile As String
Set pres = ActivePresentation
handle = FreeFile
txtFile = pres.Path & "\" & pres.Name & ".txt"
Open txtFile For Output As #handle
For Each sld In pres.Slides
For Each shp In sld.Shapes
If shp.HasTextFrame Then
Print #handle, shp.TextFrame.TextRange
End If
Next shp
Next sld
Close #handle
End Sub
|
cs |
파일 첨부합니다. Download following .pptm files..
2020년 2월 2일 추가 내용입니다.
슬라이드를 이미지(EMF)로 복사해서 워드에 한장씩 붙여 넣는 버전(페이지 꽉차게, 여백 조정 가능)
워드에서 편집이 필요 없이 페이지에 가득찬 슬라이드를 넣을 때 효과적임.
슬라이드를 워드에 붙여넣을 때 슬라이드 개체로 붙여넣는 버전(워드 페이지안에 슬라이드 개체 포함)
슬라이드화면을 가장 완벽하게 워드 페이지에 넣는 방법이고 슬라이드를 더블클릭해서 편집도 가능함.
✌반대로 워드를 파워포인트로 변환하는 VBA매크로는 아래 글을 참고하세요.
'PPT+VBA' 카테고리의 다른 글
여러 PPT안의 특정 단어 검색(도형 및 VBA 코드 포함 검색) (7) | 2019.07.07 |
---|---|
각 슬라이드에 한글자씩 가득차게 분할 출력 (0) | 2019.07.02 |
슬라이드 이미지 분할 인쇄 및 저장 (2) | 2019.06.08 |
VBA로 슬라이드 자동 생성 - '자주 쓰는 영어속담 50개' (4) | 2019.04.16 |
PPT, Excel 등 MS 오피스 Office 2010 버전 등 구하기 (4) | 2019.03.16 |
실시간 RSS 뉴스와 날씨 슬라이드쇼 (0) | 2019.03.15 |
파워포인트 슬라이드 노트를 TTS 나레이션으로 자동으로 삽입하는 매크로 (8) | 2019.01.05 |
간단한 PPT 점수판 (17) | 2019.01.02 |
최근댓글