관련: 지식인

요즘에는 pptx로 저장하면 기본으로 오디오가 pptx파일내에 포함되어 저장됩니다.
과거 형식인 .ppt 로 저장하거나 pptx에서도 삽입 버튼에서 파일에 연결을 선택하면 오디오 파일은 포함되지 않고 링크로 삽입됩니다.

이렇게 연결로 삽입하면 pptx파일을 다른 곳으로 옮기게 되면
경로가 맞지 않아 파일 재생에 문제가 생기고 오류 메시지가 뜹니다.
이럴 때 미디어의 연결 링크를 일괄로 수정하는 방법을 안내합니다.
1. 연결 편집
일단 파일 > 정보 화면 에서 오른쪽 아래에 파일 연결 편집 메뉴가 있습니다.
이걸 눌러서 파일들의 위치가 어떻게 설정되어 있는지 보시고
똑같은 폴더에 해당 파일들을 옮기시면 재생이 될 겁니다.

원본 변경 버튼을 눌러 하나씩 변경할 수도 있습니다.
2. VBA이용 방법
VBA로 연결로 삽입된 모든 미디어에 대해
폴더 경로를 제거하고 pptx파일이 있는 현재 폴더로 변경하고 링크를 업데이트하도록
할 수 있습니다.
Alt+F11 누르고 삽입 > 모듈을 추가한 다음 아래 코드를 복사해서 붙여넣습니다.
그 다음 F5로 매크로를 실행하면 됩니다.
Sub RemovePathFromMediaLink()
Dim prs As Presentation
Dim sld As Slide, shp As Shape
Set prs = ActivePresentation
For Each sld In prs.Slides
For Each shp In sld.Shapes
If shp.Type = msoMedia Then
If shp.MediaFormat.IsLinked Then
Debug.Print "Slide #" & sld.SlideIndex
sname = shp.LinkFormat.SourceFullName
Debug.Print sname
sname = Mid(sname, InStrRev(sname, "\") + 1)
shp.LinkFormat.SourceFullName = sname
shp.LinkFormat.Update
Debug.Print "==> " & shp.LinkFormat.SourceFullName
End If
End If
Next shp
Next sld
End Sub
위 코드는 C:\Users\user1\Downloads\mute04.mp3 같은 경로를 mute04.mp3 로 만들어줍니다.
그래서 pptx파일이 있는 현재 폴더에 해당 파일이 있으면 재생이 가능해집니다.
아니면 sname = Replace(sname, "C:\Users\User1", "C:\Users\User2") 같은 방식으로 특정 경로를 다른 경로로 수정해도 됩니다.
3. XML 프레젠테이션으로 저장 후 경로 일괄 바꾸기
파일 > 다른이름으로 저장에서 Powerpoint XML 프레젠테이션으로 저장합니다.

저장한 XML 파일을 텍스트 편집기에서 열어서
텍스트 찾아 바꾸기 기능을 이용해서 C:\Users\user1\Desktop\와 같은 경로를 C:\Users\user2\Desktop\ 로 변경합니다.

경로 이름이 조금이라도 틀리면 오류가 발생하고 경로가 한 개가 아니므로
주의해서 정확히 입력해서 교체합니다.
저장한 XML 파일을 다시 파워포인트에서 불러와서 다시 .pptx 혹은 .ppt로 저장합니다.
4. 연결로 삽입된 링크 연결해제(파일에 포함) 시키기
연결로 삽입된 미디어들을 pptx파일에 포함시키도록 일괄로 바꾸는 코드입니다.
(Alt+F11 누르고 삽입 > 모듈을 추가한 다음 아래 코드를 복사해서 붙여넣습니다.
그 다음 F5로 매크로를 실행)
Sub reEmbedLinkedMedia()
Dim prs As Presentation
Dim sld As Slide, shp As Shape
Set prs = ActivePresentation
For Each sld In prs.Slides
For Each shp In sld.Shapes
If shp.Type = msoMedia Then
If shp.MediaFormat.IsLinked Then
Debug.Print "Slide #" & sld.SlideIndex
sname = shp.LinkFormat.SourceFullName
Debug.Print sname
shp.LinkFormat.BreakLink
Debug.Print "Embedding result ==> " & shp.MediaFormat.IsEmbedded
End If
End If
Next shp
Next sld
End Sub

'PPT+VBA' 카테고리의 다른 글
| 선택된 슬라이드 내 하이퍼링크 일괄 수정 (2) | 2025.08.07 |
|---|---|
| .AddNodes를 이용한 곡선 그리기 예시 (1) | 2025.05.06 |
| 빈 슬라이드 일괄 추가하는 코드 (0) | 2025.03.26 |
| 오디오 재생바 책갈피트리거 애니메이션효과로 구현하기 (0) | 2025.03.25 |
| 매크로를 추가기능으로 만드는 방법 예시 (0) | 2025.02.18 |
| 텍스트를 여러 장의 자막 슬라이드로 일괄 생성 (0) | 2025.02.05 |
| 파워포인트 모든 도형 모양 종류 및 예약어 목록 (0) | 2025.01.31 |
| 목차슬라이드 페이지 정보 자동 업데이트 (0) | 2025.01.28 |
최근댓글