皆さん、こんにちは。今日は、PowerPointのスライドショーが始まると同時に、特定のマクロを自動的に実行する方法についてお話しします。これをマスターすれば、プレゼンテーションの効率が格段にアップしますよ。
スライドショー開始時のイベントとは?
まず、PowerPointにはスライドショーが開始されたときに発生するSlideShowBeginというイベントがあります。これを利用することで、スライドショーの開始と同時に特定のマクロを実行することが可能です。例えば、スライドショーが始まったら特定の設定を自動的に適用したり、特定の動作を開始したりすることができます。
クラスモジュールを使ったイベントの設定方法
では、具体的にどのように設定するのかを見ていきましょう。少し専門的な話になりますが、クラスモジュールを使ってイベントを設定します。
1. クラスモジュールの作成まず、VBAエディターで新しいクラスモジュールを挿入し、名前を「EventClassModule」に変更します。
2. コードの記述次に、以下のコードを入力します。
vba
Option Explicit
Public WithEvents App As Application
Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
MsgBox "スライドショーが開始されました。"
End Sub
ここで、`WithEvents`キーワードを使って、Applicationオブジェクトのイベントを取得できるようにしています。
3. 標準モジュールでの初期化標準モジュールに以下のコードを追加し、クラスモジュールを初期化します。
vba
Option Explicit
Dim X As New EventClassModule
Sub InitializeApp()
Set X.App = Application
End Sub
この`InitializeApp`マクロを実行することで、イベントが有効になります。
標準モジュールだけでマクロを自動実行する方法
クラスモジュールを使わずに、標準モジュールだけでスライドショー中にマクロを自動実行する方法もあります。例えば、スライドが切り替わるたびにマクロを実行したい場合、以下のように記述します。
vba
Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)
MsgBox "スライド" & Wn.View.CurrentShowPosition & "が表示されました。"
End Sub
このマクロは、スライドショー中にスライドが切り替わるたびに実行され、現在のスライド番号を表示します。
よくある質問や疑問
Q1: クラスモジュールを使わずにスライドショー開始時にマクロを実行する方法はありますか?
はい、標準モジュールに`OnSlideShowPageChange`という名前のマクロを作成し、最初のスライドが表示されたときに特定の処理を行うことで、スライドショー開始時にマクロを実行することが可能です。
Q2: マクロが自動的に実行されない場合、どうすれば良いですか?
スライド上にActiveXコントロールを配置することで、マクロが自動的に実行されるようになる場合があります。例えば、スライドにコマンドボタンを配置し、それを非表示にすることで対応できます。
まとめ
今回は、PowerPointのスライドショー開始時にマクロを自動実行する方法についてご紹介しました。クラスモジュールを使った方法や、標準モジュールだけで実現する方法など、さまざまなアプローチがあります。ぜひ試してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。



コメント