返回列表 上一主題 發帖

[發問] 有關播放插件音效檔問題

[發問] 有關播放插件音效檔問題

由於欲於 Excel VBA 加入圖像訊息提醒外,
近日亦開始加入話音提示.
另為了減少 xls 檔案的容量,
我把播放的音效檔分為兩類,
一類是視窗內置有的音效檔,
我使用以下方式播放.
  1. Private Declare Function sndPlaySound32 _
  2. _
  3.     Lib "winmm.dll" _
  4.     Alias "sndPlaySoundA" ( _
  5.         ByVal lpszSoundName As String, _
  6.         ByVal uFlags As Long) As Long
  7. Sub PlayFunishWavFile()
  8.     sndPlaySound32 "C:\Windows\Media\tada.wav", 0&
  9. End Sub
複製代碼
當要播放的時候只用 application.run "PlayFinishWavFile" 這一句就可以.
這個方法於 Excel 2003 和 2007 皆沒有出現問題.

第二類的音效檔我以物件的方法插入到 Excel 內,
使用巨集錄取的方法取得以下代碼.
  1. Sub PlayWelcomeWavFile()
  2.     Sheets("Data_Field").Select
  3.     Sheets("Data_Field").Shapes("Object 1410").Select
  4.     Selection.Verb Verb:=xlPrimary
  5. End Sub
複製代碼
當要播放的時候只用 application.run "PlayWelcomeWavFile" 這一句就可以.
這個方法於 Excel 2003 沒有出現問題,
而且效果我十分滿意.
但當我把這個檔案移至 2007 執行時,
出現了以下問題:

1.  原於檔案始首執行的
  1. Private Sub Workbook_Open()
  2. Application.ScreenUpdating = False
  3. Application.Visible = False
複製代碼
, 於第一次執行播放插件音效檔時這兩個指令就會失效,
會自行顯示回來.

2.  於播放音效檔時會彈出 Windows Media Player, 但於 2003 執行時不會有這個情況.


請問問題出在那裡, 是 2007 的問題還是...?

請指教

本帖最後由 jimmyhk 於 2011-10-23 07:04 編輯
由於欲於 Excel VBA 加入圖像訊息提醒外,
近日亦開始加入話音提示.
另為了減少 xls 檔案的容量,
我把播放 ...
jimmyhk 發表於 2011-10-19 06:45


今早在網上這裡 http://blogs.technet.com/b/csstwplatform/archive/2010/02/06/windows-vista-7-cannot-add-movie-ole-object-using-office-2007.aspx 找到一篇解說,
現在大致明白為何同樣插入的音效檔 (wav) 於 2003 和 2007.  (更正, 是在 XP 和 windows7 ) 會有不同的反應.

但現在未有方法可以解決這個相容的問題.
(如只是單一要該 xls 檔案在 03 上執行, 或只在 07 上執行, 則沒有這個問題.)

大家有沒有什麼可解決的方法或想法?

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題