アプリ版:「スタンプのみでお礼する」機能のリリースについて

Office XPのPowerPointのマクロで2つのスライドショーを制御したいと考えています。
<想定している動作>
1)スライドショーAはエンドレスで流れている
2)スライドショーA内にあるリンクボタンを押すと、スライドショーBが流れ始める(マクロを実行)
3)スライドショーBは1回流れるとスライドショーAに切り替わる
4)スライドショーAがエンドレスで流れ始める

マクロを途中まで作成したのですが、4)で、スライドショーAがリンクボタンを押した状態のまま固まってします。
ソースは以下です。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub slide()
  PowerPoint.Presentations.Open ("C:\スライドB.ppt")
With    
ActivePresentation.Slides.Range.SlideShowTransition
.AdvanceOnClick = msoFalse
.AdvanceOnTime = msoTrue
      '表示秒数 
.AdvanceTime = 30000
End With
With ActivePresentation.SlideShowSettings
.ShowType = ppShowTypeSpeaker
.LoopUntilStopped = msoFalse
'繰り返し上映はしない
.ShowWithNarration = msoTrue
.ShowWithAnimation = msoTrue
.RangeType = ppShowAll
.AdvanceMode = ppSlideShowUseSlideTimings
.PointerColor.SchemeColor = ppForeground
.Run
End With
  Sleep (1000)

SlideShowWindows(Index:=1).View.Next
Sleep (1000)
SlideShowWindows(Index:=1).View.Next
Sleep (1000)
SlideShowWindows(Index:=1).View.Exit
Sleep (1000)
ActivePresentation.Close
PowerPoint.ActiveWindow.Activate
End Sub

どなたかお分かりになる方いらっしゃいますか?
上のソースをベースにしなくても良いので、ぜひアドバイスお願いします!

A 回答 (1件)

以下の方法はどうでしょう。



"スライドB.ppt"
は、個別にスライドショーのアニメーション設定や画面切り替え設定を施しておき、プレゼンテーション形式
"スライドB.pps"
で保存します。

スライドショーAでは次のコード(例えばCommandbutton1のクリックイベント)で呼び出します。

Private Sub CommandButton1_Click()
PowerPoint.Presentations.Open ("C:\スライドB.pps")
End Sub

なお、スライドB.ppsは終了すると勝手に閉じて、スライドショーAの続きがスタートします。

環境は違いますが、Win2000+Powerpoint2000で成功しました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!