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 列挙型
    定数内容
    xlSpeakByColumns1列を下方向に読み上げてから
    次の列に移動します。
    xlSpeakByRows0行を横方向に読み上げてから
    次の行に移動します。(既定値)
  • 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【スピークエイシンク】(省略可)
    テキストの読み上げを同期するかしないかをブール型の値で選択します。

    設定値内容
    TrueTextは非同期で読み上げられます。
    Textの読み上げの終了を待たずに次の処理が実行されます。
    FalseTextは同期で読み上げられます。
    Textの読み上げが終了するまで次の処理は実行されません。

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

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

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

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


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

    設定値内容
    TrueText を読み上げる前に
    現在の読み上げが終了し
    一時保存しているテキストが削除されます。
    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 列挙型
    定数内容
    xlSpeakByColumns1列を下方向に読み上げてから
    次の列に移動します。
    xlSpeakByRows0行を横方向に読み上げてから
    次の行に移動します。(既定値)

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

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

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

フォローする

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