1. '샘플50.pptx'파일을 '샘플50.ppsx' 로 저장한 다음
엑셀에서 하이퍼링크를 "샘플50.ppsx#12, 샘플50.ppsx#34" 로 하는 것이 가장 간단한 방법입니다.
2.pptx파일을 특정 페이지를 열고 싶다면 VBA를 이용해야겠습니다.
https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=335538903#reply1
3. 이미 창이 열린 경우에는 해당 창을 유지한채로 열리게
4. (3,4)의 경우 외부에 있는 파일로 링크하는데,
별도의 파일 없이 삽입된 pptx 개체를 열고 원하는 페이지로 이동할 수도 있습니다.
도형에 "10슬라이드로 이동"이라고 적고 아래 OpenUp매크로를 지정하면
클릭시 개체를 열고 편집화면에서 10슬라이드로 이동합니다. (슬라이드쇼로 열고 이동도 가능)
여기서는 "10슬라이드"라고 도형에 쓰인 텍스트에서 10이라는 숫자를 가져와서 10슬라이드로 이동합니다.
매크로가 걸린 도형에 텍스트, 태크, 링크 등에 이동할 슬라이드에 대한 정보를 담아놓아야 이동할 슬라이드를 알 수 있습니다.
Sub OpenUp()
Set sht = ActiveSheet '현재 시트
Set shp = sht.Shapes("Object 1")
Set ppt = shp.OLEFormat.Object
'ppt.Activate
'DoEvents
'ppt.Object.SlideShowWindow.View.GotoSlide 10
'슬라이드쇼
'ppt.Verb Verb:=1 '1:Show, 2:Edit, 3:Open
'ppt.Object.SlideShowWindow.View.GotoSlide 10
'편집화면
Set bshp = sht.Shapes(Application.Caller)
target = CLng(Split(bshp.TextFrame2.TextRange.Text, "슬라이드")(0))
ppt.Verb Verb:=3 '1:Show, 2:Edit, 3:Open
With ppt.Object.Windows(1)
.Left = -5
.Top = -5
.Width = 1920
.Height = 1000
.View.GotoSlide target
End With
End Sub
실제 화면:
첨부한 샘플 xlsm 파일 참고하세요.
도형에 매크로를 삽입한 경우뿐만 아니라
셀에 하이퍼링크를 건 경우까지 반영한 수정 버전입니다.
셀에 링크를 걸 때 자기자신 셀주소로 링크를 걸어야 합니다.
하이퍼링크가 눌리는 것을 감시하다가 링크가 클릭되면 (Workbook_SheetFollowHyperlink)
하이퍼링크가 걸린 셀의 텍스트에서 10, 20, 30이라는 숫자를 가져와서 슬라이드를 이동시킵니다.
'모듈 1' 코드:
Sub OpenUp()
Dim sht As Worksheet
Dim pptObj As Object
Dim Target As Long
Dim bshp As Shape
Set sht = ActiveSheet '현재 시트
Set pptObj = sht.Shapes("Object 1").OLEFormat.Object
Set bshp = sht.Shapes(Application.Caller)
Target = CLng(Split(bshp.TextFrame2.TextRange.Text, "슬라이드")(0))
OpenSlide pptObj, Target
End Sub
Function OpenSlide(ppt As OLEObject, TargetSlide As Long)
'1. ppsx인 경우 쇼로 열기
'ppt.Activate
'DoEvents
'ppt.Object.SlideShowWindow.View.GotoSlide 10
'2. 슬라이드쇼로 열기
'ppt.Verb Verb:=1 '1:Show, 2:Edit, 3:Open
'ppt.Object.SlideShowWindow.View.GotoSlide 10
'3. 편집화면으로 열기
ppt.Verb Verb:=3 '1:Show, 2:Edit, 3:Open
With ppt.Object.Windows(1)
'.Left = -5
'.Top = -5
'.Width = 1000 '1920 '창크기
'.Height = 600 '1000
.View.GotoSlide TargetSlide
End With
End Function
'현재 통합문서' 코드:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim sht As Worksheet
Dim pptObj As Object
Dim TargetSld As Long
Set sht = Sh '현재 시트
Set pptObj = sht.Shapes("Object 1").OLEFormat.Object
TargetSld = CLng(sht.Range(Target.SubAddress).Text)
OpenSlide pptObj, TargetSld
End Sub
수정 파일:
'XLS+VBA' 카테고리의 다른 글
모든 행 값을 랜덤으로 섞기 (1) | 2024.03.01 |
---|---|
네이버 API를 이용한 '네이버 쇼핑' 검색 결과 수집 (0) | 2024.02.20 |
엑셀에서 실시간 유튜브 구독자수 모니터링 (0) | 2024.02.15 |
온라인 이미지를 다운로드하여 아래로 이어 붙인 상품 이미지 일괄 생성 (0) | 2024.02.14 |
juso.go.kr이용 한글주소 ↔ 영어주소 변환 (0) | 2023.06.15 |
영어단어와 뜻 OCR인식 결과 정리하기 (0) | 2023.06.12 |
PPT파일 순서를 확인/정렬해서 합치기 (0) | 2023.02.11 |
구글 이미지 검색 결과 가져오기 (0) | 2023.02.01 |
최근댓글