Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » スライドをランダムに並び替えるPowerPointマクロ

スライドをランダムに並び替えるPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010

「パワーポイント スライドショー ランダム表示」
という検索が行われていました。

スライドショーを実行するときに、ランダムにスライドを表示させる方法を探している方による検索でしょうか。

プレゼンテーションを実行するときに、ランダムな順番でスライドを表示させるためには、ちょっとパワーがいりますが、プレゼンテーション実行前にスライドの順番をランダムに変更するということならば、簡単なマクロでできます。

英語圏では「Randomize the order of a PowerPoint presentation」で紹介されているようなロジックがメジャーなようで、類似したコードをあちこちで見かけます。

[スポンサードリンク]

スライドをランダムに並べ替えるサンプルマクロ

ただ、いくつか気になる箇所があるので、少しだけコードを修正したマクロをご紹介させていただきます。
Sub スライドをランダムに並び替える()
 
 Dim sld As Long
 Dim cnt As Long
 Dim i As Long
 
 cnt = ActivePresentation.Slides.Count
 If cnt < 2 Then Exit Sub
 
 ActiveWindow.ViewType = ppViewSlideSorter
 Randomize
 
 For i = 1 To cnt
  sld = Int((i * rnd) + 1)
  ActivePresentation.Slides(sld).Select
  ActiveWindow.Selection.Cut
  ActivePresentation.Slides(cnt - 1).Select
  ActiveWindow.View.Paste
 Next i
 
End Sub

サンプルマクロの解説

メインの並び替え処理をしているのは、
 For i = 1 To cnt
  sld = Int((i * rnd) + 1)
  ActivePresentation.Slides(sld).Select
  ActiveWindow.Selection.Cut
  ActivePresentation.Slides(cnt - 1).Select
  ActiveWindow.View.Paste
 Next i
の部分です。

ループ処理に入ってすぐ
  sld = Int((i * rnd) + 1)
で、変数・sldに1からスライド総数までの整数の乱数を格納しておいて
そのスライド番号のスライドを選択して
  ActivePresentation.Slides(sld).Select
切り取りを行い
  ActiveWindow.Selection.Cut
一番最後のスライドを選択して
  ActivePresentation.Slides(cnt - 1).Select
貼り付けを
  ActiveWindow.View.Paste
行っています。

このメインの処理に入る前に、そもそもスライドが1枚しかなければすぐにSubプロシージャを抜ける処理や
 If cnt < 2 Then Exit Sub
スライド一覧モードにする処理
 ActiveWindow.ViewType = ppViewSlideSorter
乱数を初期化したり
 Randomize
を行っています。

英語圏でよく見かけるコードは、なぜかループの中で
 ActiveWindow.ViewType = ppViewSlideSorter
を何度も実行しているのですが、これはループ処理に入る前に1回だけやればいいと思います。

乱数の初期化もしておくほうがいいでしょうから
 Randomize
を追加しています。

このマクロを実行しておいてから、スライドショーを開始すれば、毎回ランダムな順序でスライドショーが実行されるというわけです。

上記のマクロは、スライドの順番を実際に変更してしまうので、元のプレゼンテーションの順番を残しておきたいのならば、コピーしたファイルで上記のマクロとスライドショーを実行するようにして、元のファイルは残しておくといいでしょう。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » スライドをランダムに並び替えるPowerPointマクロ

「Slide・スライド」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.