Board logo

標題: [發問] 怎樣使excel 說出wav [打印本頁]

作者: 自我感覺良好    時間: 2017-12-11 05:28     標題: 怎樣使excel 說出wav

真害∼excel用64位元這些都無效了
excel 32還可以用…

Option Explicit

'API Class to take care of playing the file
Public Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
                        ByVal uFlags As Long) As Long
作者: 自我感覺良好    時間: 2017-12-11 07:20

2012年曾經討論過,不過到了64位的excel全都失效了
http://forum.twbts.com/viewthrea ... ntable&tid=7013
作者: 自我感覺良好    時間: 2017-12-11 11:10

[attach]28105[/attach]附上檔案,拿到64位元就不能用了…
作者: 自我感覺良好    時間: 2017-12-11 21:38

我想要我的excel要像它一樣…會講話
https://youtu.be/17Wvun4onuY
作者: c_c_lai    時間: 2017-12-12 14:00

回復 1# 自我感覺良好
'API Class to take care of playing the file
Public Declare Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
                        ByVal uFlags As Long) As Long
'  修改成如下便可以了 ( PtrSafe )
'  API Class to take care of playing the file
Public Declare PtrSafe Function sndPlaySound32 Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
                        ByVal uFlags As Long) As Long
作者: c_c_lai    時間: 2017-12-12 15:03

回復 3# 自我感覺良好
如果同時要在 32 / 64 位元下均能執行,請修改成:
#If VBA7 Then
    'API Class to take care of playing the file
    Public Declare PtrSafe Function sndPlaySound32 Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
                        ByVal uFlags As Long) As Long
#Else
    Public Declare Function sndPlaySound32 Lib "winmm.dll" _
    Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
                        ByVal uFlags As Long) As Long
#End If
作者: 自我感覺良好    時間: 2017-12-12 18:11

回復 6# c_c_lai
真的是救苦救難的菩薩,太感謝了∼
我想都沒有還可以32和64都可用的,這一招。
太完美了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)