サイト内のVBAコードを検索できます。
[2009/07/27] Update / by dz02572i
No.[106] 人物を指定して読み上げる |
|
|
ブログトップへ戻る|
|
■ 読み上げる人物を指定してテキストを読み上げる ■

人物を指定して読み上げるマクロです。 英単語帳を作成して、日本語は日本人、英語はアメリカ人に交互に読み上げさせるといった応用ができます。 人物の指定方法は「SAPI.SpVoice」のインデックス番号を取得することからはじまります。詳細はサンプルファイルをダウンロードして動作を確認してください。
サンプルファイル(xls) * 右クリックで保存して起動して下さい。
http://www.geocities.co.jp/SiliconValley-Bay/2717/_xlsdowloadlist/f_0106_speak.xls
Option Explicit
'<+++++++++++++++++++++++++++++++>
Private Sub CommandButton1_Click()
On Error Resume Next
Dim Voice2
Dim myVoiceID
Dim myText
myText = TextBox1.Text
myVoiceID = Label1.Caption
'セットする
Set Voice2 = CreateObject("SAPI.SpVoice")
'人物にspeakさせる
Set Voice2.voice = Voice2.GetVoices().Item(myVoiceID)
Voice2.Speak myText
End Sub
'<+++++++++++++++++++++++++++++++>
Private Sub CommandButton2_Click()
On Error Resume Next
Dim Voice2
Dim myVoiceID
Dim myText
myText = TextBox2.Text
myVoiceID = Label1.Caption
'セットする
Set Voice2 = CreateObject("SAPI.SpVoice")
'人物にspeakさせる
Set Voice2.voice = Voice2.GetVoices().Item(myVoiceID)
Voice2.Speak myText
End Sub
'<+++++++++++++++++++++++++++++++>
Private Sub ListBox1_Change()
Label1.Caption = ListBox1.ListIndex
Label2.Caption = ListBox1.Text
End Sub
'<+++++++++++++++++++++++++++++++>
Private Sub UserForm_Initialize()
'
On Error Resume Next
Dim Voice1
Dim Voice1Count
Dim Voice1Name
Dim i
'セットする
Set Voice1 = CreateObject("SAPI.SpVoice")
'音声認識の人物の総数をカウントする
Voice1Count = Voice1.GetVoices.Count
For i = 0 To Voice1Count - 1
Set Voice1.voice = Voice1.GetVoices().Item(i)
Voice1Name = Voice1.voice.getdescription() '人物名を取得
ListBox1.AddItem Voice1Name '人物名をリストボックスに追加
Next
'リストボックスの1行目を選択
If Voice1Count >= 1 Then
ListBox1.ListIndex = 0
End If
End Sub
'<+++++++++++++++++++++++++++++++>
サーバーの空き箱に入ってるニャン。甘えん坊ニャン。拍手はちょっとだけすきニャン。


[セル]
















































































































