VBA 朗读excel随机选择的单元格 (语音库人声可选)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim obj As Object, soundnu As Integer
Set obj = CreateObject("SAPI.spVoice") '创建语音对象
Set sysVoice = obj.GetVoices()
Sheet1.Range("H1").Value = "选择语音(0~" & obj.GetVoices().Count - 1 & ")" '可供选择的语音
soundnu = Sheet1.Range("H2").Value '选择的语音
'检测选择的语音是否存在,不存在就设置默认的
If soundnu < obj.GetVoices().Count And soundnu >= 0 Then
Set obj.Voice = sysVoice(soundnu) '设置选择的语音
Else
Set obj.Voice = sysVoice(0)
End If
For i = 1 To Target.Rows.Count
For j = 1 To Target.Columns.Count
obj.Speak Sheet1.Cells(Target.Row + i - 1, Target.Column + j - 1).Value
Next j
Next i
End Sub