三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

VBA PowerPoint クラスモジュールで WithEvents イベント処理 例題として スライド開始 SlideShowBegin と スライド終了 SlideShowEnd を処理

VBA PowerPoint イベント で検索すると、いろいろなページがヒットします。
今回は、下記公式の
Application オブジェクトでイベントを使用する
https://docs.microsoft.com/ja-jp/office/vba/powerpoint/how-to/use-events-with-the-application-object
を見ながら、テストしていきます。

下記、いつものテスト動画です
www.youtube.com
https://www.youtube.com/watch?v=E837vhWZ09g

スライドショー開始のイベント
スライド終了のイベントにコードを書きたい
ので、

クラスモジュールに EventClassModule とClass1から変更して名称を付けました
タイミング確認のMsgBoxは不要なので取り除いてください

下記のコードを クラスモジュール EventClassModule と名称を付けます。

Option Explicit

Public WithEvents App As Application

Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
    MsgBox "スライド開始、おちついて"  'ここに時計スタートのコードを書くと良いのでは?
    Debug.Print "スライド開始" & Now
End Sub

Private Sub App_SlideShowEnd(ByVal Pres As Presentation)
    Debug.Print "スライドEnd" & Now   '終了のタイミング
    MsgBox "終了、おつかれさまでした"
End Sub

'SlideShowNextClick こんなイベントもあったりします
Private Sub App_SlideShowNextClick(ByVal Wn As SlideShowWindow, ByVal nEffect As Effect)
    Debug.Print "次がおされた" & Now
    MsgBox "次のスライドです"
End Sub

でイベントがとれると思います。

イベントにコードを書いたら、次は、

標準モジュールに

Option Explicit

Dim X As New EventClassModule

Sub InitializeApp()
    Set X.App = Application
End Sub

Sub スライド開始()
    
   Set X.App = Application  'イベントを拾えるように定義
   
   ActivePresentation.SlideShowSettings.Run  'スライドショー開始

End Sub

などで、クラスモジュールに書いたイベントが走るようにします。

そんな手順を下記で動画にしています※冒頭と同じ動画です
https://www.youtube.com/watch?v=E837vhWZ09g

公式の
Application オブジェクトでイベントを使用する
https://docs.microsoft.com/ja-jp/office/vba/powerpoint/how-to/use-events-with-the-application-object
をみるのが一番だと思いますが、
処理の参考となれば幸いです。

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)