Excel VBA データ読み上げ機能

スポンサーリンク

Excelデータ読み上げ機能

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

Speak【スピーク】メソッド

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

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

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

スポンサーリンク

関連記事・広告