見出し画像

VBA|メソッド|Application.Speech.Speak|指定した文字列を音声で読み上げる


基本構文

	Application.Speech.Speak Text, SpeakAsync, SpeakXML, Purge

Text:読み上げる文字列
SpeakAsync:非同期実行(True / False)
SpeakXML:XML指定(通常は False)
Purge:既存キューを破棄するか(True / False)

戻り値
なし


サンプルコード

指定した文字列を音声で読み上げる
役割:処理中・完了などを音声で通知する
理由:画面を見ていなくても状態が分かるようにする
注意:連続実行すると読み上げが重なることがある

Sub SpeakSample()
    Application.Speech.Speak "ここの文章を読み上げるよ!"
End Sub

セルの値を読み上げる
役割:セルに書かれたメッセージを音声通知する
理由:処理結果を視覚以外でも伝えるため
注意:数式の場合は計算後の値が読み上げられる

Sub SpeakCellValue()
    Application.Speech.Speak Range("A1").Value
End Sub

Application.Speech.Speak が非同期で動作するかを確認する
役割:読み上げ中でも後続処理が実行されるかを検証する
理由:Purge や連続読み上げ制御が有効か判断するため
注意:Debug.Print は即時ウィンドウを事前に開いておく

Sub SpeakAsyncCheck()
    Application.Speech.Speak "読み上げ開始", True
    
    For i = 1 To 100
        Debug.Print i
    Next i
End Sub

備考

  • Excel に標準搭載されているため 参照設定は不要

  • 読み上げ非同期設定時は処理完了前に次のコードが動く点に注意

  • 長文や連続呼び出しでは

    • 読み上げが途中で重なる

    • 意図しない順序で再生されることがある

  • 主な活用例

    • 処理完了通知

    • エラー発生時の警告

    • 長時間マクロの進捗通知


いいなと思ったら応援しよう!

Parusの寺小屋 技術メモや学習の整理として書いています。 もし内容が役に立ったり、続きを読みたいと思っていただけたら、 応援として受け取らせてもらえたら嬉しいです。