網路城邦
上一篇 回創作列表 下一篇  字體:
[Excel VBA ] VBA 寫音效播放函數
2009/03/02 21:54:17瀏覽11220|回應4|推薦0

怎樣可以讓Excel公式符合條件時發出想要的提示音?
例如:當 A1>A2 時,自動撥放 C:\123.WAV
我的方法是, 用 VBA 寫個播放音效檔的 function, 在儲存格裡使用的時候, 就像這樣寫公式:

    SNDPLAY(音效檔路徑)

例如:

=IF(A1 > A2, sndplay("C:\123.wav"), 0)



做法是這樣的, 在 Excel 中, 按 Alt F11 進入 Visiual Basic 編輯器畫面, 點選 [插入]/[模組], 畫面會跳出程式碼視窗 (注意:放在 ThisWorkBook 或 Sheet1、Sheet2 ... ... 等等的程式碼視窗裡是不行的!),在裡面輸入 (或從這裡複製去貼上比較快,但需要登入 UDN blog 才可以複製) 如下程式:

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Function SndPlay(Pathname As String) As Long
    SndPlay = sndPlaySound(Pathname, SND_ASYNC)
End Function

切換回到 Excel 工作表就可以利用它了。

我試過可播放的音效檔格式有: .WAV, .MP3, .WMA

*註: 曾經不止一次在Yahoo奇摩知識+為網友回答這個問題, 稍做整修之後貼在這裡。

*2018/1/8更新並補充。感謝網友 "新點心" 指正。

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=WayCheng&aid=2702667

 回應文章

冷伯
2024/11/30 10:28
你好,我想请问一下:如果我直接把一个小wav档插入放在工作表2的a1储存格,然后我想在工作表1的c1储存格设置为当b1储存格>100时就去播放工作表2的这个wave档,请问我该怎么做呢?(kelly0912468787@gmail.com)

別說再見
等級:3
留言加入好友
2019/01/08 02:05
Private Declare 此為2個字,必須分開,否則不能用。

請教
2015/02/15 18:42

紅字= =?

怎麼解


請教一下
請教一下
2009/04/28 16:28

為何我執行時再第一列就出現錯誤訊息??