0

슬라이드를 바꿀 때 일부 텍스트 상자 및 레이블의 내용을 다시 설정하려고하는데 작동하지 않으려 고합니다. Google 검색 및 검색을 많이 수행 한 후에이 문제를 해결했지만 작동하지 않는 것 같습니다. PowerPoint 2013 및 2016에서 OnSlideShowPageChange 이벤트를 사용하려고하는데 아무런 효과가없는 것 같습니다. PowerPoint vba로 작업하는 데 익숙하지 않아 완전히 잘못된 작업을하고 있습니다.파워 포인트에서 슬라이드를 바꿀 때 vba 코드를 어떻게 실행합니까?

편집 : 레이블 텍스트를 재설정하는 대체 방법을 찾을 수있었습니다. 사용자가 텍스트 상자 중 하나에 중점을 두거나 레이블 위에 마우스를 올리면 재설정 할 수있었습니다. 그러나 나는 아직도이 질문에 대한 답을 알고 싶어한다. 왜 내 코드가 작동하지 않는지 잘 모르겠습니다.

누구든지 문제를 지적하고 해결할 수 있다면 큰 도움이 될 것입니다. 나는 또한 음성 부호 모양의 이름을 넣어 시도했습니다

Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) 
    Dim Sld As Slide 

    If Wn.View.CurrentShowPosition = 9 Then 
     'Perform Updates for slide #9 
     Set Sld = Application.ActivePresentation.Slides(9) 
     Sld.Shapes(TextBox_Form_Name).TextFrame.TextRange.Text = "" 
     Sld.Shapes(TextBox_Form_Email).TextFrame.TextRange.Text = "" 
     Sld.Shapes(TextBox_Form_Message).TextFrame.TextRange.Text = "" 
     Sld.Shapes(Label_Form_Info).TextFrame.TextRange.Text = "" 
    End If 

    If Wn.View.CurrentShowPosition = 18 Then 
     'Perform Updates for slide #18 
     Set Sld = Application.ActivePresentation.Slides(18) 
     Sld.Shapes(TextBox_Form_Name).TextFrame.TextRange.Text = "" 
     Sld.Shapes(TextBox_Form_Email).TextFrame.TextRange.Text = "" 
     Sld.Shapes(TextBox_Form_Message).TextFrame.TextRange.Text = "" 
     Sld.Shapes(Label_Form_Info).TextFrame.TextRange.Text = "" 
    End If 
End Sub 

, 그러나 그 도움이 될 것 같지 않습니다

는 여기에 지금까지있어거야. 그런데

, 나는 SlideshowWindow로 OnSlideShowPageChange (SHW에 따라 코드를 가정 모두 파워 포인트 다음은 2013 년 2016

답변

0

에서 일을 http://www.pptfaq.com

에서 파워 포인트 자주 묻는 질문에서 답을 코드를 것 필요) 이벤트는 VBA 내에서 또는 PowerPoint 내에서 프레젠테이션을 시작할 때 작동하지만 PPS 또는 PPSM 아이콘을 두 번 클릭하여 프로그램을 시작할 때 작동하지 않습니다. 슬라이드 쇼는 정상적으로 시작되지만 OnSlideShowPageChange 서브 루틴의 코드는 실행되지 않습니다.

해결책 첫 번째 슬라이드에 Active-X 컨트롤 (개발자 탭에서)을 추가합니다 (슬라이드 쇼 중에 보이지 않게하려면 슬라이드에서 드래그하십시오).

이렇게하면 프레젠테이션이 시작될 때 VBA가 강제로 초기화되므로 이벤트가 트리거되고 코드가 실행됩니다.

관련 문제