- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# HSIEN6001
、 這是特殊字元 程式理修改為 , 逗點
- Sub SpeEnginBox()
- Dim i, j, AA, Ar, E
- i = Application.CountA(Range("C:C"))
- If i = 1 Then
- MsgBox "範圍內無英文語句", 16
- Exit Sub
- End If
- AA:
- j = InputBox("請問你要唸第幾句?" & vbNewLine & "(格式 1 ,2 ,3...)", , "")
- Ar = Array(j) '將 J 轉入陣列
- If j = "" Or j = 0 Then
- If MsgBox("您未輸入任何數字 停止輸入 !!! ", vbYesNo) = vbYes Then Exit Sub
- GoTo AA
- ElseIf InStr(j, ",") Then '有輸入 格式 1、2、3...
- Ar = Split(j, ",") '將 J 轉入陣列
- For Each E In Ar '依序處裡 陣列的元素
- If Val(E) < 1 Or Val(E) > i Then '1 到 J 之間
- MsgBox "超出範圍", 16
- GoTo AA
- End If
- Next
- ElseIf InStr(j, ",") = 0 And IsNumeric(j) Then '是數字且 未輸入 格式 1、2、3...
- If Val(j) <= 0 Or Val(j) > i Then
- MsgBox "超出範圍", 16
- GoTo AA
- End If
- ElseIf InStr(j, ",") = 0 And Not IsNumeric(j) Then '不是數字且 '未輸入 格式 1、2、3...
- MsgBox "超出範圍", 16
- GoTo AA
- End If
- Set oSa = CreateObject("SAPI.SpVoice")
- For E = 0 To UBound(Ar) 'E為 陣列的數值
- oSa.Volume = 100
- oSa.Rate = -1
- oSa.Speak Cells(Ar(E) + 1, 3)
- If E < UBound(Ar) Then If MsgBox("「Continue?」 Next (" & Ar(E + 1) & " )", vbYesNo) <> vbYes Then Exit Sub
- Next
- End Sub
複製代碼 |
|