web-dev-qa-db-ja.com

Wordのテキスト読み上げの置き換え

MicrosoftはWord2007からテキスト読み上げを削除することを決定したようです。まともな代替品はありますか、できれば別のアプリケーションを必要としませんか? Wordから直接読みたいのですが。

これも実際にはアクセシビリティの質問ではありません。私が書いたものを声に出して聞きたいのです。それは貧弱な言い回しをより明白にします。

4
Sean Edwards

はい、マイクロソフトは再びそれを行いました。 Text-to-SpeechはWord2007から削除されました。
幸いなことに、少しのマクロコードでそれを実装するかなり簡単な方法があります。

記事 Wordテキスト読み上げ は、VBAマクロSpeakTextとStopSpeakingを使用してWordに2つのボタンを追加する方法を説明しています。

image

5
harrymc

MS Word 2007のテキスト読み上げ

以下は、TTSを有効にするためのマクロです。これらのマクロは「normal.dot」に配置する必要があるため、MSWordアプリケーションと一緒に読み込まれます。

Alt + F11を押してマクロエディタに移動し、このコードを貼り付けます。クイックアクセスツールバーに3つのボタンを追加する必要があります。これを行うには、MS Wordのタイトルバーにある[クイックアクセスツールバーのカスタマイズ]を示す小さな下向き矢印をクリックします。ここには、保存、元に戻す、やり直しのボタンがあります。ドロップダウンメニューで[その他のコマンド]を選択して、[Wordオプション]ウィンドウを開きます。左側のメニューで「カスタマイズ」を選択すると、「コマンドの選択」が「マクロ」に設定されているはずです。 3つのマクロをすべて追加すると、クイックアクセスツールバーに3つのボタンが作成されます。これで、MSWordでTTSが有効になりました。

Option Explicit
Dim speech As SpVoice
Dim i As Integer

Sub SpeakText()
On Error Resume Next
If i = 0 Then
  Set speech = New SpVoice
  If Len(Selection.Text) > 1 Then 'speak selection
  speech.Speak Selection.Text, _
  SVSFlagsAsync + SVSFPurgeBeforeSpeak
  Else 'speak whole document
  speech.Speak ActiveDocument.Range(0, _
    ActiveDocument.Characters.Count).Text, _
    SVSFlagsAsync + SVSFPurgeBeforeSpeak
  End If
Else
  If i = 1 Then
  speech.Resume
  i = 0
  End If
End If
End Sub

Sub StopSpeaking()
On Error Resume Next
speech.Speak vbNullString, SVSFPurgeBeforeSpeak
Set speech = Nothing
i = 0
End Sub

Sub PauseSpeaking()
On Error Resume Next
If i = 0 Then
  speech.pause
  i = 1
Else
  If i = 1 Then
  speech.Resume
  i = 0
  End If
End If
End Sub

出典

1
Molly7244

いつでもテキストをコピーして ReadPlease に貼り付けることができます。無料版と有料版があり、無料版は機能します素晴らしいです!インストールして、テキストをコピーして、オフになります! :)

0
studiohack