期待する動作としては、1枚目から2枚目にはマウスクリックで、2枚目
以降は5、15秒経過後自動的に移行する、というものです。
しかし、下記のマクロを実行すると、SlideShowTransitionの設定が無
視され、スライド表示が一瞬で終わってしまいます。
Transition設定を有効にするためには、どのように行えばよいかご存知
の方がいらっしゃったら、教えていただけないでしょうか。
Windows2000SP2, Office2000SP2 の環境で使用しています。
よろしくお願いします。
T Kimura
Sub Macro1()
With ActivePresentation.SlideShowSettings
.ShowType = ppShowTypeSpeaker
.LoopUntilStopped = msoFalse
.ShowWithNarration = msoTrue
.ShowWithAnimation = msoTrue
.RangeType = ppShowAll
.AdvanceMode = ppSlideShowUseSlideTimings
.PointerColor.SchemeColor = ppForeground
.Run
End With
With ActivePresentation.Slides(1).SlideShowTransition
.EntryEffect = ppEffectNone
.AdvanceOnClick = msoTrue
.AdvanceOnTime = msoFalse
.SoundEffect.Type = ppSoundNone
End With
With ActivePresentation.Slides(2).SlideShowTransition
.EntryEffect = ppEffectNone
.AdvanceOnClick = msoFalse
.AdvanceOnTime = msoTrue
.AdvanceTime = 5
.SoundEffect.Type = ppSoundNone
End With
With ActivePresentation.Slides(3).SlideShowTransition
.EntryEffect = ppEffectNone
.AdvanceOnClick = msoFalse
.AdvanceOnTime = msoTrue
.AdvanceTime = 15
.SoundEffect.Type = ppSoundNone
End With
SlideShowWindows(Index:=1).View.Next
SlideShowWindows(Index:=1).View.Exit
End Sub
表示タイミングを設定した後で、スライドショーを開始するべき
なのに、お示しのコードでは最初の With ブロックに Run メソッド
が記述されています。
--
Miyahn?犬年うまれ
HQF0...@nifty.ne.jp
スライドショーについて勘違いをしていたようです。
表示タイミングについては、おっしゃるとおりRunメソッドの前に
あらかじめ設定しておかないといけないのですね。
ところで、スライドショーを2つ続けて行いたいときに、下記のよ
うにしても、スライドショー1(FILE1)が終わる前にスライドショー2
(FILE2)が始まってしまい、うまくいきません。
SlideShowEndを使用したらよさそうなのですが、まだヘルプファ
イルの記載が十分に理解できず、使用できていません。
スライドショー1が終わってからスライドショー2を開始する方法を
ご存知でしたら、教えていただけないでしょうか。
T Kimura
With Presentations("FILE1.PPT").SlideShowSettings
.ShowType = ppShowTypeSpeaker
.StartingSlide = 1
.EndingSlide = 4
.AdvanceMode = ppSlideShowUseSlideTimings
.Run
End With
With Presentations("FILE2.PPT").SlideShowSettings
.ShowType = ppShowTypeSpeaker
.StartingSlide = 1
.EndingSlide = 10
.AdvanceMode = ppSlideShowUseSlideTimings
.Run
End With
下記のプロシージャを記述して、2つのスライドショーの間で
呼び出せば可能ですが、切り替え時に画面がちらつきます。
最初から2つのプレゼンテーションをひとつのファイルに統合
するほうが簡単と思いますけど?
Private Sub WaitSlideShowEnd()
On Error GoTo Skip
While ActivePresentation.SlideShowWindow.View.State = _
ppSlideShowRunning
DoEvents
Wend
ActivePresentation.SlideShowWindow.View.Exit
Skip:
On Error GoTo 0
End Sub
なお、最後に黒いスライドを表示する設定になっている場合は、
エラー処理部分は不要です。
> SlideShowEndを使用したらよさそうなのですが、まだヘルプファ
> イルの記載が十分に理解できず、使用できていません。
当方も、クラスの活用はほとんどできていませんが、無理に使わなく
てもいろいろ手段はあるものです。
--
Miyahn?犬年うまれ
HQF0...@nifty.ne.jp
2つのスライドショーを制御したいのは、実は縦と
横のスライドが混じったスライドショーを行おうとして
いるためです。
スライド中にリンクを置き、そこをクリックするよう
にすれば、不可能ではないのですが、スライドを操
作する人への指示が煩雑であるのと、スライドの順
番を後日入れ替えるのが結構大変です。そこで、
変数にスライドの順番をあらかじめ準備しておき、
For-Next文中でスライドを1枚づつ表示していけない
か、と思い試行錯誤しています。
まだわからないことだらけですが、とても参考にな
りました。本当に、どうもありがとうございました。今
後ともよろしくお願いします。
T Kimura