- 帖子
- 107
- 主題
- 8
- 精華
- 0
- 積分
- 127
- 點名
- 0
- 作業系統
- Windows XP
- 軟體版本
- Office 2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-8-29
- 最後登錄
- 2025-1-28
|
由於欲於 Excel VBA 加入圖像訊息提醒外,
近日亦開始加入話音提示.
另為了減少 xls 檔案的容量,
我把播放的音效檔分為兩類,
一類是視窗內置有的音效檔,
我使用以下方式播放.- Private Declare Function sndPlaySound32 _
- _
- Lib "winmm.dll" _
- Alias "sndPlaySoundA" ( _
- ByVal lpszSoundName As String, _
- ByVal uFlags As Long) As Long
- Sub PlayFunishWavFile()
- sndPlaySound32 "C:\Windows\Media\tada.wav", 0&
- End Sub
複製代碼 當要播放的時候只用 application.run "PlayFinishWavFile" 這一句就可以.
這個方法於 Excel 2003 和 2007 皆沒有出現問題.
第二類的音效檔我以物件的方法插入到 Excel 內,
使用巨集錄取的方法取得以下代碼.- Sub PlayWelcomeWavFile()
- Sheets("Data_Field").Select
- Sheets("Data_Field").Shapes("Object 1410").Select
- Selection.Verb Verb:=xlPrimary
- End Sub
複製代碼 當要播放的時候只用 application.run "PlayWelcomeWavFile" 這一句就可以.
這個方法於 Excel 2003 沒有出現問題,
而且效果我十分滿意.
但當我把這個檔案移至 2007 執行時,
出現了以下問題:
1. 原於檔案始首執行的- Private Sub Workbook_Open()
- Application.ScreenUpdating = False
- Application.Visible = False
複製代碼 , 於第一次執行播放插件音效檔時這兩個指令就會失效,
會自行顯示回來.
2. 於播放音效檔時會彈出 Windows Media Player, 但於 2003 執行時不會有這個情況.
請問問題出在那裡, 是 2007 的問題還是...?
請指教 |
|