관련: 지식인 답변

 

폴더내 여러개의 ppt파일 있을 때 파일을 합치기보다는

슬라이드에 각 파일로 하이퍼링크를 추가해서

일종의 목차를 만들고 싶은 경우입니다.

 

일단 두 가지 방법이 있겠습니다.

 

1. 개체로 삽입

아래처럼 삽입 > 개체에서 파일로부터 만들기 > 찾아보기로 pptx파일 선택하빈다.

연결에 체크하고, 아이콘으로 표시에 체크하고 아이콘 변경을 누르고 아이콘 아래에 표시될 제목을 입력하고 확인을 누릅니다.

개체로 삽입한 경우 연결에 체크해제하면 pptx파일 내부에 포함할 수 있습니다.

또한 슬라이드 쇼를 실행하지 않고 일반 화면에서 더블 클릭으로 열 수 있습니다.

개체 삽입 결과:

2. 하이퍼링크로 삽입

 도형이나 그림, 아이콘을 하나 넣고 삽입 > 링크> '기존 파일'에서 해당 pptx를 선택합니다.

도형이나 그림을 마음대로 선택할 수 있는 점이 장점입니다.

파일 내부에 포함할 수는 없습니다.

일반 슬라이드 편집화면에서 열려면 Ctrl을 누른 채로 링크를 클릭합니다.

책갈피를 눌러서 특정 슬라이드로 바로 링크할 수 있는 장점도 있습니다.

위 두가지 방법 모두 여러개의 ppt에 대해서 작업하려면 번거롭기 때문에

VBA로 자동화시킬 수도 있습니다.

 

3. 일단 아래 매크로로 현재 폴더내의 모든 ppt? 파일에 하이퍼링크를 걸어서 자동으로 목차를 만들 수 있습니다.

 

Alt-F11 누르고 삽입 > 모듈 추가 후에 아래 코드를 붙여넣고 F5키로 실행합니다.

더보기
Option Explicit

Sub 목차만들기()

    Dim pres As Presentation
    Dim sld As Slide, shp As Shape
    Dim SW!, SH!, x!, y!, w!, h!, hm!, vm!
    Dim dname$, fname$
    Dim i%, r%, c%, k%
    Dim myColor&
    
    '// 가로, 세로 여백
    hm = 20: vm = 15
    myColor = RGB(100, 200, 200)
    Set pres = ActivePresentation
    Set sld = ActiveWindow.View.Slide

    With pres.PageSetup
        SW = .SlideWidth
        SH = .SlideHeight
    End With
    
    '// 가로 4 * 세로 10
    r = 5: c = 3
    w = (SW - hm) / c - hm
    h = (SH - vm) / r - vm
    
    dname = pres.Path & "\"
    fname = Dir(dname & "*.ppt?")
    
    While Len(fname) > 0
        If fname <> pres.Name Then
            i = i + 1
            k = (i - 1) Mod (r * c)
            If k = 0 Then
                Set sld = pres.Slides.Add(pres.Slides.Count + 1, ppLayoutBlank)
            Else
                Set sld = pres.Slides(pres.Slides.Count)
            End If
            x = hm + (k Mod c) * (w + hm)
            y = vm + (k \ c) * (h + vm)
            Set shp = sld.Shapes.AddShape(msoShapeRoundedRectangle, x, y, w, h)
            shp.Name = "Link_" & k + 1
            shp.Line.Visible = msoFalse
            shp.Fill.ForeColor.RGB = myColor
            With shp.TextFrame.TextRange
                .Text = Left(fname, InStrRev(fname, ".") - 1)
                .Font.Size = 15
                .Font.Color.RGB = rgbWhite
                While .Lines.Count > 2
                    .Font.Size = .Font.Size - 1
                Wend
            End With
            
            With shp.ActionSettings(ppMouseClick)
                .Action = ppActionHyperlink
                .Hyperlink.Address = dname & "\" & fname
            End With
        End If
        fname = Dir
    Wend
    
End Sub

 

특히 r과 c 값을 바꾸면 아래처럼 자유롭게 페이지당 개수를 바꿔서 만들 수 있습니다.

hm과  vm 값을 수정하여 여백을 조절할 수도 있습니다.

3 * 5

 

4 * 4

 

첨부파일 참고 하세요.

(다운 받은 후 파일속성에서 차단해제 하고 매크로허용해서 열어야 합니다. ppt파일이 있는 폴더에 옮겨서 실행하세요.)

 

목차만들기1.pptm
0.04MB