2017-03-21 1 views
1

Excel-VBA 파일에서 PPT를 만들고 ppt의 확대/축소를 100 %로 설정하려고합니다.활성화하지 않고 PowerPoint 문서 창 확대하기

어떻게 PowerPoint 창을 활성화하지 않고 Excel 파일에서이 작업을 수행 할 수 있습니까?
또는 창을 활성화해도 어떻게 할 수 있습니까?

Excel에서 다음 예제 코드는 바탕 화면에 PPT 파일을 열고이 PPT의 줌을 설정하려고 시도했지만 작동하지 않는 것 같다

Sub CreatePptAndSetZoom() 
    Dim ppApp As PowerPoint.Application 
    Dim ppPres As PowerPoint.Presentation 
    Dim strTemplate$ 

    'Look for existing instance of PPT 
    On Error Resume Next 
    Set ppApp = GetObject(, "PowerPoint.Application") 
    On Error GoTo 0 

    'Create new instance of PPT if no instance exists 
    If ppApp Is Nothing Then Set ppApp = New PowerPoint.Application 

    'Define Path of Template and open new ppt 
    strTemplate = Environ("UserProfile") & "\Desktop\Test.pptx" 
    Set ppPres = ppApp.presentations.Open(strTemplate, False, True, True) 

    'Set Zoom 
    ppApp.ActiveWindow.View.Zoom = 100 

End Sub 

엑셀에서 Excel 파일에서 줌을 설정

Application.ActiveWindow.Zoom = 100 

사람은 PPT 파일의 코드없이이 문제를 해결하는 방법을 알고 있나요 : 파일 (View 제외) 약간 다른 문으로 작동?

답변

1

귀하의 코드 실행이 원활 후반의 명령을 행한다 사용 : 약간의 도움으로

Sub ZoomInPptFromExcel() 
    Dim ppApp As Object 

    'Get existing instance of PPT 
    On Error Resume Next 
    Set ppApp = GetObject(, "PowerPoint.Application") 
    On Error GoTo 0 

    'Set Zoom 
    ppApp.ActiveWindow.View.Zoom = 100 

End Sub 

Sub CreatePptAndSetZoom() 
    Dim ppApp As Object 'PowerPoint.Application 
    Dim ppPres As Object 'PowerPoint.Presentation 
    Dim strTemplate$ 

    'Look for existing instance of PPT 
    On Error Resume Next 
    Set ppApp = GetObject(, "PowerPoint.Application") 
    On Error GoTo 0 

    'Create new instance of PPT if no instance exists 
    If ppApp Is Nothing Then Set ppApp = CreateObject("PowerPoint.Application") 

    'Define Path of Template and open new ppt 
    strTemplate = Environ("UserProfile") & "\Desktop\Test.pptx" 
    Set ppPres = ppApp.Presentations.Open(strTemplate, False, True, True) 
    'Set ppPres = ppApp.Presentations.Add 

    'Set Zoom 
    ppApp.ActiveWindow.View.Zoom = 100 
End Sub 
+0

답장을 보내 주셔서 감사합니다. 그러나 나는 이것이 늦은 또는 초기 바인딩과 관련이 없다고 생각한다. 새로운 ppt를 연 다음 코드를 실행하면 후기와 초기 바인딩 모두에서 작동합니다. 내 VBA 만든 ppt 파일의 확대/축소를 설정하려고하면 두 코드가 자동화 오류만으로 실패하는 것 같습니다. – JackTheFruit

+0

@JackTheFruit : 앱이 보이나요?게시물을 편집하여 자신이하는 일을 볼 수 있도록 전체 코드를 제공하십시오. – R3uK

+0

@JackTheFruit : 코드의 작동 버전을 포함하도록 게시물을 편집했으며,'Set ppPres = ppApp.Presentations.Add'로 테스트했으며 두 경우 모두 잘 작동합니다. – R3uK

2

을 (당신에게 R3uK 감사합니다!) 나는이 문제의 마지막 코드를 기반으로 다음과 같은 해결책을 발견 :

해결책 :

대신> 창에 활성 창 줌을 설정


일부 발언 - -> 메인 슬라이드 창을
ppPres.Windows(1).View.Zoom = 100 활성화

ppPres.Windows(1).Panes(2).Activate :다음과 같은 사용

ppPres.Windows(1)을 - > 프리젠 테이션이 표시된 창만의 콜렉션

ppApp.Windows(1) -> 모두 열린 ppt와 컬렉션 w indows. 따라서 항목 1 이전에 ppt가 열리면 오른쪽 창을 반환하지 않습니다.

항목 1 : ppViewThumbnails (왼쪽 소형 슬라이드)
항목 2 : -

ppPres.Windows(1).Panes(2) 내 경우에는 항목 번호에서 다음 ViewTypes 의존있는 PPT 창 내부 패널의> 컬렉션 ppViewSlide (기본보기)
항목 3 : ppViewNotesPage (바닥에 코멘트 섹션)


그래서 내 예제에서 나는 항목 2 주 슬라이드보기 창의 줌 변경을 원했습니다.

관련 문제