0

マクロを有効にした PowerPoint 2010 プレゼンテーションに次の VBA コードを添付しています。

Public CurrentSlideIndex As Integer

Sub OnSlideShowPageChange()
    CurrentSlideIndex = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
    If CurrentSlideIndex = 1 Then
        MsgBox "First Page"
        ' some initialization
    End If
End Sub    

最初のページが表示されたときに、そこで初期化を行いたいと思います。問題は、プレゼンテーションを初めて実行したときに、ルーチンが起動されないことです。プレゼンテーションを停止してもう一度実行すると、機能し、その後も機能し続けます。最初の実行のみが機能しません。

それに対する修正はありますか?

4

2 に答える 2

0

ポンペール、

これに沿って何かを試してください:

Sub OnSlideShowPageChange(ByVal SlideSet As SlideShowWindow)
    If SlideSet.View.CurrentShowPosition = _
        SlideSet.Presentation.SlideShowSettings.StartingSlide Then
        MsgBox "I am a Message."
    End If
End Sub

モジュールにコードを保存し、最初からパワーポイントを実行します。2007 年に実行したので、Powerpoint 2007 または 2010 で問題なく機能すると思います。

このコードを使用して、他のスライド ショー位置のモジュールを作成することもできます。可能性のより完全なリストについては、MSDN のドキュメントを参照してください: 2007 -- http://msdn.microsoft.com/en-us/library/bb265987(v=office.12).aspx

2010 -- http://msdn.microsoft.com/en-us/library/ff746846.aspx

~JOL

于 2012-07-26T18:11:09.113 に答える
0

コードにいくつかの変更を加えます。

Public CurrentSlideIndex As Long

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
    CurrentSlideIndex = SSW.View.CurrentShowPosition
    If CurrentSlideIndex = 1 Then
        MsgBox "First Page"
        ' some initialization
    End If
End Sub

次に (Hans Hofman さん、ありがとうございます: http://www.tech-archive.net/Archive/Office/microsoft.public.powerpoint/2006-02/msg01234.html ) 最初にダミーの Active-X コントロールを配置します。スライドします (または、実際には最初のスライドをオフにして、ショーに表示されないようにします)。

これにより、VBA が強制的に初期化され、ほら、イベント ハンドラーが起動するようです。

于 2012-07-29T19:02:51.340 に答える