Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

スライドショーをマクロで制御するには

598 views
Skip to first unread message

Tetsuya Kimura

unread,
Jul 24, 2001, 12:04:24 AM7/24/01
to
 PowerPoint2000でスライドショーをマクロで制御しようとしています。

 期待する動作としては、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


Miyahn

unread,
Jul 26, 2001, 10:56:11 AM7/26/01
to
最初の With ブロックを最後に回せばよろしいのでは?

表示タイミングを設定した後で、スライドショーを開始するべき
なのに、お示しのコードでは最初の With ブロックに Run メソッド
が記述されています。

--
Miyahn?犬年うまれ
HQF0...@nifty.ne.jp

Tetsuya Kimura

unread,
Jul 26, 2001, 10:46:57 PM7/26/01
to
Miyahanさん、レスありがとうございます。

 スライドショーについて勘違いをしていたようです。

 表示タイミングについては、おっしゃるとおり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


Miyahn

unread,
Jul 30, 2001, 9:49:04 PM7/30/01
to
"Tetsuya Kimura" <tk...@infobears.ne.jp> wrote in message
news:utuUbZkFBHA.1692@tkmsftngp04...

>  ところで、スライドショーを2つ続けて行いたいときに、下記のよ
> うにしても、スライドショー1(FILE1)が終わる前にスライドショー2
> (FILE2)が始まってしまい、うまくいきません。

 下記のプロシージャを記述して、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

Tetsuya Kimura

unread,
Aug 1, 2001, 7:34:12 PM8/1/01
to
 Miyahnさん、返信が遅くなりすいませんでした。
 わざわざコードまで書いていただき、どうもありが
とうございました。

 2つのスライドショーを制御したいのは、実は縦と
横のスライドが混じったスライドショーを行おうとして
いるためです。
 スライド中にリンクを置き、そこをクリックするよう
にすれば、不可能ではないのですが、スライドを操
作する人への指示が煩雑であるのと、スライドの順
番を後日入れ替えるのが結構大変です。そこで、
変数にスライドの順番をあらかじめ準備しておき、
For-Next文中でスライドを1枚づつ表示していけない
か、と思い試行錯誤しています。

 まだわからないことだらけですが、とても参考にな
りました。本当に、どうもありがとうございました。今
後ともよろしくお願いします。

 T Kimura


0 new messages