パワポに記載されたノートを読み上げるマクロボタンを作成。
単純にスライドショーのノート
SlideShowWindows(1).View.Slide.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text
をSAPI.SpVoice .Speakで読み上げただけですが・・・アレンジして処理の参考となれば。
#パワーポイント #PowerPointVBA #マクロ #デバッグ #ノート読み上げ #SAPI.SpVoice #Speak
下記、いつもの あのあの うるさく イライラさせる 解説動画です
youtu.be
https://youtu.be/mLUdzmReyCU
目次
00:00 0.あいさつ、やりたいこと
01:32 1.標準モジュールにコードを書く
01:50 2.挿入・動作でマクロ指定
03:03 3.動作したボタンのコピー確認
03:30 簡単なコード説明 と 気になった点
04:14 新規ファイルを作り設置説明開始
05:39 Alt+F11でVBAコード 挿入・標準モジュール
06:15 実行ボタンとして図形やアイコンを追加
06:45 追加した図形に対して 挿入 動作 マクロを指定
07:37 問題点、読み上げ長いと応答なし?
09:00 再度しつこくアイコンの設置方法
10:35 マクロ付きパワポだとセキュリティ警告が出る
作成のキッカケ
知恵袋に下記の質問があったので、チャレンジしてみます
detail.chiebukuro.yahoo.co.jp
パワポの読み上げ機能を使って研修資料を作りたいです。
ボタンを用意して、
受講者がそのボタンを押せばそのページのノートが読み上げられるようなマクロって作れますか?
読み上げ+録音を添付するやり方だと録音ファイルの容量が大きいため、
都度パワポ側で読み上げて欲しいのです。
1.標準モジュールに下記のコードを書く
Alt+F11 や 開発で、VBのエディターに行き、コードを追加します
'Win10 MS365のPowerPointでテスト Sub 現在スライドのノートを読み上げる() Dim strNOTE As String '読み上げたいノートの文字列 'コードが長いけど、現在のスライドノートを取得 '...Placeholders(2)なんで2?これで取得できるので・・・ strNOTE = SlideShowWindows(1).View.Slide.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text 'ノートが空白なら終了 If strNOTE = "" Then MsgBox "ノートが見つかりません" Exit Sub 'メッセージ End If 'ノートを読み上げる '単純にSAPI.SpVoiceを使用してみた Dim objSAPI As Object Set objSAPI = CreateObject("SAPI.SpVoice") objSAPI.Speak strNOTE '.Speakに文字列を渡す Set objSAPI = Nothing End Sub
2.追加したマクロを実行する図形やアイコンを追加して 挿入・動作でマクロ実行
3.あとは、確認した図形やアイコンを必要個所にコピーする
4.気になった点
ノート読み上げマクロにして受講生に配布だと、
4.1 最近、マクロのセキュリティの問題など、別なことに注意が必要かなぁ。
4.2 読み上げを単純に SAPI.SpVoiceで今回実行してますが、受講者の環境で動作するか?
※パワポの読み上げを使う方法を探った方がいいかも?
4.3 読み上げが長いと、応答なしになる
コードをアレンジして使ってみてください。
パワポ ノート 読み上げ処理の参考となれば幸いです。
音声埋め込みの関連過去記事:
ken3memo.hatenablog.com
ken3memo.hatenablog.com
ken3memo.hatenablog.com
ken3memo.hatenablog.com