Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » スライドショー中に直前のスライドに戻るPowerPointマクロ

スライドショー中に直前のスライドに戻るPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「スライドショーの実行中に、どこかのスライドにジャンプしてから、元々表示していたスライドに、簡単に戻れるマクロを実行するボタンを作るにはどうしたらいいのだろう?」
といったご相談をいただきました。

例えば、5枚のスライドがあるプレゼンテーションファイルで、2枚目のスライドを表示しているときに、5枚目のスライドに一旦ジャンプした後、元の2枚目のスライドを簡単に表示するようなボタンを作るにはどうしたらいいのか、というご相談です。

[スポンサードリンク]

早速そんなプレゼンテーションファイルを作ってみました。

▼サンプルファイル(powerpoint-macro-showing-slide-immediately-before-current-slide.pptm 40KByte)ダウンロード

上記のサンプルファイルは、直前のスライドに戻るマクロと、そのマクロを実行するボタンを設定してあります。

(実はマクロを作らなくても良かったことにあとから気づきました。この記事の最後にマクロを使わない方法を追記しています。2015-10-06 09:35)

直前のスライドに戻るサンプルマクロ

まず、直前のスライドに戻るマクロは以下のとおりです。

Sub 直前のスライドに戻る()

 With SlideShowWindows(1).View
  .GotoSlide Index:=.LastSlideViewed.SlideIndex
 End With

End Sub

スライドショー実行中には、
 SlideShowWindowオブジェクトの
  SlideShowViewオブジェクトの
   GotoSlideメソッドで、
引数に指定したスライドを表示させることができます。

また、
 SlideShowWindowオブジェクトの
  SlideShowViewオブジェクトの
   LastSlideViewedオブジェクトの
    SlideIndexプロパティで、
直前に表示していたスライドのスライド番号を取得できます。

ですから、
SlideShowWindows(1).View.GotoSlide Index:=SlideShowWindows(1).View.LastSlideViewed.SlideIndex
という1行のマクロで、直前のスライドを表示することができます。
ですが、さすがにこのコードは長すぎますからWithステートメントを使って整理したのが上記のマクロです。

オブジェクト式としては、SlideShowWindowオブジェクトのViewプロパティで、SlideShowViewオブジェクトが取得できる部分、

スライドショー中に直前のスライドに戻るPowerPointマクロ

プロパティ名と返されるオブジェクト名が異なっている部分を要注意だと感じます。

PowerPoint VBAの場合、オブジェクトモデルの階層がどうしても深くなりがちなことと、プロパティ名と取得できるオブジェクト名が一致していないケースが、ちょいちょいあるというのが厄介なところです。

直前のスライドに戻るボタンを作成する

上記のマクロを作ったら、マクロを実行するボタンを作成します。

すべてのスライドに、上記のマクロを実行する[直前のスライドに戻る]ボタンを作るのなら、以下のような手順です。
▼操作概要:直前のスライドに戻るボタンを全スライドに作成する
スライドマスターを表示
 ↓
スライドマスターに[動作設定]ボタンを作成
 ↓
自動的に表示される
[オブジェクトの動作設定]ダイアログ
 -[マウスのクリック]タブ
  -[マクロの実行]オプションで
   「直前のスライドに戻る」を指定

[動作設定]ボタンは、[挿入]タブ-[図]グループ-[図形]ボタンをクリックすると、

スライドショー中に直前のスライドに戻るPowerPointマクロ

下図のように、一番下に表示されます。

スライドショー中に直前のスライドに戻るPowerPointマクロ

[動作設定]ボタンをスライドマスター上に作成すると、[オブジェクトの動作設定]ダイアログが自動的に表示されますから、下図のように設定してください。

スライドショー中に直前のスライドに戻るPowerPointマクロ

[動作設定]ボタンではなく、通常の図形(オートシェイプ)からマクロを実行することもできます。
図形を挿入した場合は[オブジェクトの動作設定]ダイアログは自動的に表示されませんが、図形を選択しておいてから[挿入]タブ-[リンク]グループ-[動作]ボタンをクリックすれば、

スライドショー中に直前のスライドに戻るPowerPointマクロ

[動作設定]ボタンと同じようにマクロを実行するように設定できます。


(以下、2015-10-06 09:35追記)

実はマクロがなくてもOK

と、ここまで記事を書いてから、実はマクロを一切使わなくてもいいことに気づきました。。

▼マクロを含まないサンプルファイル(powerpoint-macro-showing-slide-immediately-before-current-slide.pptx 40KByte)ダウンロード

下図のように、
[オブジェクトの動作設定]ダイアログ
 -[マウスのクリック]タブ
  -[ハイパーリンク]オプションで
   「最後に表示したスライド」
を指定したボタンをスライドマスターに作れば、

スライドショー中に直前のスライドに戻るPowerPointマクロ

マクロは不要です。完全にPowerPointの標準機能だけでOKでした。。

最終更新日時:2019-07-05 10:21

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » スライドショー中に直前のスライドに戻るPowerPointマクロ

「スライドショー」の記事一覧

検索


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

.