質問者
パワーポイント VBAを使って テキストを自動更新出来ますか?

質問
-
【OS】Windows7
【Officeのバージョン】Office365
【質問内容】
PowerPointの最初のスライドのタイトルを、予め設定した時間になると自動的に変更することは出来なでしょうか?
例えば、2019年7月26日 7時 変更対象のテキスト「AAAAA」
2019年7月27日 8時 変更対象のテキスト「BBBBB」
2019年7月28日 9時 変更対象のテキスト「CCCCC」のように、テキスト「AAAAA」「BBBBB」「CCCCC」が変わってくれるようなVBAの使い方があれば、教えて頂きたいのです。
日程とテキストは既に決まっているので、時間前にPowerPointを起動して、入力し直して保存という作業を簡単に出来れば助かるのですが・・・。
100回程あり、変更し忘れの防止になるので・・・。宜しくお願い致します。
すべての返信
-
どのタイミングで書き換えたいのかがよくわかりませんがスライドショーを
開始したときのみ (スライドショーを実行中にまたいだ時は処理されない) で
よければクラスモジュールを使って以下のようにしてはどうでしょうか。' PowerPoint の Application イベントを受け取るための変数 Dim WithEvents ppApp As Application ' クラスのコンストラクタ ' (イベントを受け取れるようにする) Private Sub Class_Initialize() Set ppApp = Application End Sub ' スライドショーを開始したときのイベント処理 Private Sub ppApp_SlideShowBegin(ByVal Wn As SlideShowWindow) Dim Title As String ' 現在時刻で処理分け Select Case Now ' 2019/7/26 7:00 - 2019/7/27 7:59:59 の間 Case CDate("2019/7/26 7:00") To CDate("2019/7/27 7:59:59") Title = "AAAAA" ' 2019/7/27 8:00 - 2019/7/28 8:59:59 の間 Case CDate("2019/7/27 8:00") To CDate("2019/7/28 8:59:59") Title = "BBBBB" ' 2019/7/28 9:00 以降 Case Is >= CDate("2019/7/28 9:00") Title = "CCCCC" End Select ' Title が空文字列でなかったら変更する If Title <> "" Then Wn.Presentation.Slides(1).Shapes.Title.TextFrame.TextRange.Text = Title End If End Sub
クラスモジュールの使い方などは別途調べてください。
ただ、一応簡単に検証しましたが正常に動くかどうかの保証はあまりないです。