0

スライドを変更すると、一部のテキストボックスやラベルの内容をリセットしようとしていますが、動作させるのに苦労しています。私は多くのグーグルと検索をした後、これを考え出しましたが、うまくいかないようです。 PowerPoint 2013および2016でOnSlideShowPageChangeイベントを使用しようとしていますが、効果がないようです。私はPowerPoint vbaでの作業に慣れていないので、何か完全に間違っているかもしれません。パワーポイントでスライドを変更するときに、どのようにvbaコードを実行しますか?

編集:ラベルテキストをリセットする別の方法を見つけることができました。ユーザーがテキストボックスの1つにフォーカスしたり、マウスをラベル上に移動したりすると、リセットされるようになりました。しかし、私はまだこの質問に対する答えを知りたいと思っています。私のコードがなぜ機能していないのか分かりません。

誰かが問題を指摘して解決する方法があれば、私は素晴らしいことができます。ここで

は、私がこれまで持っているものです:

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 

私はまた、音声符で形状の名前を入れて試してみたが、それは助けていないようです。ところで

が、私はパワーポイント2013と2016の両方に

答えて

0

を動作するようにコードが必要です。ここhttp://www.pptfaq.com

でパワーポイントよくある質問から答えはOnSlideShowPageChangeに依存してコードSlideshowWindowとして(SHWを仮定します)イベントは、VBA内から実行したとき、またはPowerPoint内からプレゼンテーションを起動したときに機能しますが、PPSまたはPPSMのアイコンをダブルクリックしてショーを開始したときは動作しません。スライドショーは正常に起動しますが、OnSlideShowPageChangeサブルーチンのコードは決して実行されません。

Solution 最初のスライド(スライドショー中に表示したくない場合は、スライドからドラッグします)にActive-Xコントロール(開発者タブから)を追加します。

これにより、プレゼンテーションの開始時にVBAが強制的に初期化されるため、イベントが発生し、コードが実行されます。

関連する問題