自動でしゃべるパワーポイントの作り方 VBAコード付き!

道具箱

美味しい水をお探しですか?
定額制だからお水は使い放題!全て“月額料金”にコミコミ!
利用料金は業界最安値!

PR広告!おいしい水を水道水から【Locca】

 オンライン講義に対応するため、講義用パワーポイントノート欄に書いた内容を、自動で読み上げ画面も切り替わるVBAマクロを作ってみました。

普通には、スライドを表示しながら解説を自分でしゃべって、それを記録し、スライドに音声ファイルを挿入していく作業となります。以前にそれで音声付パワポを作成した経験があります。

 とても地道な作業です。

 なかなか良好な録音環境が難しく どうしてもノイズが入ってしまいます。

 90分間、全くノイズが無い環境を確保するのはスタジオでなければムリ! ではないでしょうか。。。 また、途中でかんでしまうと再録音です。

 そこで発見したのが音声合成によるテキストの「読み上げ」機能です。

 これはOfficeに標準で備わっている機能で、選択したテキストを音声合成エンジンが読み上げてくれます。この機能を使って、パワポのノート欄に記述した解説(テキスト)を読み上げたら! と、ここで問題は、スライドショーを表示している状態では、ノート欄のテキストを選択できない!ということです。

 さらにネット上を検索したところ、以下のVBAサンプルコードがありました。

・スライドに設置したボタンを押すとノートのテキストをしゃべるパワポ
・スライドが切り替わると実行するマクロ


この2つを組み合わせることで、自動でスライドを切り替え表示しながらノート欄のテキストを読み上げるパワポを作成することができました。

これでノート欄に解説を記述するだけで自分でしゃべって録音する必要がなくなりました!そのため、解説内容をじっくり推敲することができます。また、解説内容を容易に変更することが可能となりました。

以下に2項で標準モジュールに貼り付けるVBAコードの簡単な説明をします。

コピーしてPowePointの開発タブから Visual Basic Editor を起動し、標準モジュールに貼り付けて実行して下さい。

Sub OnSlideShowPageChange(ByVal ss As SlideShowWindow)

'' スライド位置を取得
Dim n As Long
n = ss.View.CurrentShowPosition - 1
  
'' 現在のスライドを取得
Dim note As SlideRange
Set note = ActivePresentation.Slides(n).NotesPage

'' ノート欄を取得
Dim shp As Shape
Set shp = note.Shapes.Placeholders(2)

'' ノート欄のテキストを取得
Dim NoteText As String
NoteText = shp.TextFrame.TextRange.Text

'' ノート欄が空の場合は終了
If NoteText = "" Then
Exit Sub
End If

'' 音声合成エンジンを取得
Dim sv As Object
Set sv = CreateObject("SAPI.SpVoice")

'' 速度を設定
sv.Rate = -1

'' 日本語の音声合成エンジンを検索して取得
For n = 0 To sv.GetVoices.Count - 1
If InStr(sv.GetVoices.Item(n).GetDescription, "Japanese") Then
Set sv.Voice = sv.GetVoices.Item(n)
Exit For
End If
Next

'' 日本語の音声合成エンジンが無かった場合
'' その旨をメッセージボックスに表示
If InStr(sv.Voice.GetDescription, "Japanese") < 1 Then
MsgBox "日本語の音声合成エンジンがありません。" & vbCrLf & _
"現在の設定 : " & sv.Voice.GetDescription
Exit Sub
End If

'' 音声合成実行
sv.Speak NoteText

'' 音声合成エンジンを開放
Set sv = Nothing



End Sub


 なお、3項は音声合成エンジンがうまく起動しないことがあるので、1枚目のスライドの枠外に小さいActivX(ボタン等)を貼り付けます(スライド操作には関係ないので”おまじない”みたいなものです)。また、4項のスライド設定でクリックしたときに画面を切り替えるようにすると画面が切り替わった後に、そのスライドのノート欄を自動でしゃべり止まります。自動で切り替えるようにすると、最後まで自動再生しながら自動でしゃべります。途中で停止する場合は「Ecs」キーを押します。

クリック時の設定例

自動再生の設定例
※「出席者として閲覧する(ウィンドウ表示)」に設定することで、オンデマンド受講者がウィンドウサイズを調整でき、他の資料などを同時に閲覧することできます。

※「すべてに適用」をお忘れなく


参考URL
しゃべるパワポの作り方
パワーポイントマクロ PowerPoint VBAの使い方
  » ノート » NotesPage.Shapes.Placeholders(2)とは
PowerPointの自動実行マクロ

PR広告!TechAcademy [テックアカデミー] PR広告!システム開発業者を完全無料でご紹介します!【EMEAO!】

話の分かる優秀なコンサルタントをお探しですか?

PR広告!一流コンサルタントに3.85万(税込み)〜WEB相談できる!【コンパスシェア】


DXに強いシステム開発会社をお探しですか?

PR広告!システム開発業者を完全無料でご紹介します!【EMEAO!】




PR広告!おいしい水を水道水から【Locca】



【PR広告】会社や上司へ連絡不要!【退職代行ガーディアン】



■120社1000人以上が受講!!

1.研修・オンライン講座      
  経験と勘だけのレビューから脱却する!レビューを体系的に学び、成果につなげる!          
  『【リスク指向】超ドキュメントレビュー実践法』
  ※実務ですぐに使えるチェックリストを使用した演習付き!
  
  危険予知能力を高め、リスクを見つける!
  『100の失敗事例に学ぶ!企業システム戦略の危険予知訓練』
  ※すぐに実践で役立つ100の失敗事例による危険予知訓練の演習付き!

■便利な道具箱

自動でしゃべるパワーポイント(VBAマクロ)
 ノート欄のテキストを音声合成エンジンが読み上げ、画面も自動で切り替わるVBAマクロ!
音声を録音するよりとっても楽です。失敗して録音をやり直す手間もなく、部分的な変更も楽々です。

簡易日程計算(Excel/VBA)
 製品構成展開されたツリーデータを使用して、製品を期日までに組立完成させるために必要な日程を計算するExcel/VBA!

簡易原価積上げ計算(Excel/VBA)
 製品構成展開されたツリーデータを使用して、製品を構成する部材の原価を積上げ、製品原価を計算するExcel/VBA!

簡易所要量計算(Excel/VBA)
 製品構成展開されたツリーデータを使用して、製品を組み立てるために必要な部品の個数を
 計算するExcel/VBA! 

■間違いだらけのシステム構築(無料冊子ダウンロード)
 ~企業システムの強化書~
 https://www.kigyo-systems.com/books/book.html

PR広告!TechAcademy [テックアカデミー]
PR広告!システム開発業者を完全無料でご紹介します!【EMEAO!】

メルマガ読者登録・配信中止



コメント

タイトルとURLをコピーしました