Excel VBA データ読み上げ機能

スポンサーリンク
スポンサーリンク

Excelデータ読み上げ機能

VBAでは、セルのデータを読み上げるRange【レンジ】オブジェクトのSpeak【スピーク】メソッドと、引数で指定した任意の文字列を読み上げるApplication【アプリケーション】オブジェクトの
Speech【スピーチ】プロパティで取得したSpeech【スピーチ】オブジェクトのSpeak【スピーク】メソッド、同じく音声認識を表すSpeech【スピーチ】オブジェクトのセルに値を入力して[Enter]キーまたは入力を確定するとそのセル値を読み上げるSpeakCellOnEnter【スピークセルオンエンター】 プロパティの3種類の読み上げを実行するメソッドやプロパティがあります。

Range.Speakメソッド

指定したセルのデータを読み上げるには、Range【レンジ】オブジェクトのSpeak【スピーク】メソッドを使用します。

Range.Speakメソッドの書式

[]内は省略可能です。
オブジェクト.Speak( [SpeakDirection, SpeakFormulas] )


設定値(引数)の説明

  • オブジェクト(必須)
    読み上げを実施するセルまたはセル範囲をRange【レンジ】オブジェクトで指定します。
  • SpeakDirection【スピークディレクション】(省略可)
    読み上げるセルの順番をXlSpeakDirection列挙型の定数で指定します。

    XlSpeakDirection 列挙型
    定数 内容
    xlSpeakByColumns 1 列を下方向に読み上げてから
    次の列に移動します。
    xlSpeakByRows 0 行を横方向に読み上げてから
    次の行に移動します。(既定値)
  • SpeakFormulas【スピークフォーミュラズ】(省略可)
    セルに数式が含まれる場合の音声合成(TTS)を実行するかどうかを指定します。
    TTSはText-To-Speech(音声合成)の略です。

    設定値 内容
    True 数式をTTSエンジンに送ります。
    数式が含まれていない場合は値が送られます。
    False 数式の場合も値がTTSエンジンに送られます。
    (既定値)

選択されたセル範囲の値を読み上げるコード例

Sub 読み上げ()
Selection.Speak
End Sub

Speech【スピーチ】プロパティ

音声機能を表すSpeech【スピーチ】オブジェクトを取得するには、Application【アプリケーション】オブジェクトのSpeech【スピーチ】プロパティを使用します。

Speech【スピーチ】プロパティの書式

Application.Speech
【戻り値】Speech【スピーチ】オブジェクト


Speech【スピーチ】オブジェクトのメソッドとプロパティ一覧表

メソット・プロパティ 内容
Speak【スピーク】 メソッド 引数に指定した文字列を読み上げます。
Direction【ディレクション】 プロパティ セルが読み上げられる方向を設定します。
SpeakCellOnEnter
【スパークセルオンエンター】 プロパティ
セルの入力された値を[Enter]または
確定で読み上げるかどうかを設定します。

Speak【スピーク】 メソッド

引数として渡された文字列のテキストを読み上げるには、音声機能を表すSpeech【スピーチ】オブジェクトのSpeak【スピーク】 メソッドを使用します。

Speak【スピーク】 メソッドの書式

[]内は省略可能です。
オブジェクト.Speak( Text[, SpeakAsync, SpeakXML, Purge] )


設定値(引数)の説明

  • オブジェクト(必須)
    Application【アプリケーション】オブジェクトのSpeech【スピーチ】プロパティで取得したSpeech【スピーチ】オブジェクトを指定します。
  • Text【テキスト】(必須)
    音声にするテキストを文字列で指定します。
  • SpeakAsync【スピークエイシンク】(省略可)テキストの読み上げを同期するかしないかをブール型の値で選択します。
    設定値 内容
    True Textは非同期で読み上げられます。
    Textの読み上げの終了を待たずに次の処理が実行されます。
    False Textは同期で読み上げられます。
    Textの読み上げが終了するまで次の処理は実行されません。

    ※省略した場合はFalseが設定されます。

  • SpeakXML【スピークエックスエムエル】(省略可)
    テキストがXMLの場合XMLタグをどうするかをブール型の値で指定します。

    設定値 内容
    True XMLを解釈してXMLタグは
    読み上げません。
    False XMLは解釈しません。
    XMLタグはそのまま読み上げます。

    ※省略した場合はFalseが設定されます。


  • Purge【パージ】(省略可)
    読み上げの開始をブール型の値で指定します。

    設定値 内容
    True Text を読み上げる前に
    現在の読み上げが終了し
    一時保存しているテキストが削除されます。
    False 現在の読み上げが終了するまで
    Text の読み上げは開始されません。
    一時保存しているテキストは削除されません。

    ※省略した場合はFalseが設定されます。

SpeechオブジェクトのSpeakメソッド使用例

Sub 読み上げ2()
Application.Speech.Speak Text:="Excel VBA"
End Sub

Direction【ディレクション】 プロパティ

セルが読み上げられる順序を設定するには、Speech【スピーチ】オブジェクトのDirection【ディレクション】 プロパティを使用します。

Direction【ディレクション】 プロパティの書式

オブジェクト.Direction = 設定値


設定値の説明

  • オブジェクト(必須)
    Application【アプリケーション】オブジェクトのSpeech【スピーチ】プロパティで取得したSpeech【スピーチ】オブジェクトを指定します。
  • 設定値(必須)
    読み上げるセルの順番をXlSpeakDirection列挙型の定数で指定します。

    XlSpeakDirection 列挙型
    定数 内容
    xlSpeakByColumns 1 列を下方向に読み上げてから
    次の列に移動します。
    xlSpeakByRows 0 行を横方向に読み上げてから
    次の行に移動します。(既定値)

SpeakCellOnEnter【スピークセルオンエンター】 プロパティ

Enter キーが押されたとき、またはアクティブ セルの編集が終わったときに、アクティブ セルを読み上げるかどうするかを設定または状態の取得をするには、Speech【スピーチ】オブジェクトのSpeakCellOnEnter【スピークセルオンエンター】 プロパティを使用します。

SpeakCellOnEnter【スピークセルオンエンター】 プロパティも書式

オブジェクト.SpeakCellOnEnter = 設定値


設定値の説明

  • オブジェクト(必須)
    Application【アプリケーション】オブジェクトのSpeech【スピーチ】プロパティで取得したSpeech【スピーチ】オブジェクトを指定します。
  • 設定値(必須)
    読み上げモードのオンとオフをブール型の値で指定します。

    設定値 内容
    True 読み上げモードはオンです。
    False 読み上げモードはオフです。

セルに値を入力して[Enter]で入力された値を読み上げるコード例

Sub 読み上げ3()
With Application.Speech
.Direction = xlSpeakByColumns
.SpeakCellOnEnter = True
End With
End Sub

以上で、読み上げ機能についての解説を終了します。ありがとうございました。

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク