如何在 Excel 中條件滿足時播放聲音?
在 Excel 中,我們可以使用條件格式來根據需要格式化和突出顯示儲存格以滿足條件,但有時如果條件滿足,您可能希望播放聲音。例如,如果 A1 單元格的值大於 300,我希望播放一個聲音。Excel 不支援此功能,本文將介紹一些 VBA 程式碼來解決這個問題。
使用 VBA 程式碼根據單元格值播放默認系統提示音
這裡有一個方便的程式碼,當特定條件滿足時,您可以播放默認系統提示音,請按照以下步驟操作:
1. 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications 視窗。
2. 點擊 插入 > 模組,並將以下程式碼粘貼到模組視窗中。
VBA 程式碼:根據單元格值播放默認系統提示音:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
3. 然後保存並關閉此程式碼視窗,返回工作表,並輸入此公式:=IF(A1>300,BeepMe(),"") 到包含您要根據其播放聲音的值的單元格旁邊的空白單元格中,然後按 Enter 鍵,公式單元格中不會顯示任何內容,請參見截圖:
4. 現在,如果在單元格 A1 中輸入的值大於 300,則會播放默認系統提示音。
使用 VBA 程式碼根據單元格值播放自訂聲音
如果您想播放默認系統提示音以外的其他聲音,這裡還有一個 VBA 程式碼可以幫助您。
1. 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications 視窗。
2. 點擊 插入 > 模組,並將以下程式碼粘貼到模組視窗中。
VBA 程式碼:根據單元格值播放特定聲音:
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
'Updateby Extendoffice 20161223
Call PlaySound("c:\windows\media\Speech On.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
3. 然後保存並關閉此程式碼視窗,返回工作表,並輸入此公式: =IF(A1>300,SoundMe(),"") 到包含您要根據其播放聲音的值的單元格旁邊的空白單元格中,然後按 Enter 鍵,公式單元格中不會顯示任何內容,請參見截圖:
4. 從現在開始,如果在單元格 A1 中輸入的值大於 300,則會立即播放特定聲音。
注意:在上述程式碼中,您可以根據需要從 c:\windows\media\ 文件路徑更改聲音 wav 文件。請參見截圖:
使用 VBA 程式碼在特定列中單元格值更改時播放聲音
如果您希望在特定列中的單元格值更改時播放聲音,可以應用以下 VBA 程式碼。
1. 右鍵點擊您希望在列中值更改時播放聲音的工作表標籤,然後從上下文選單中選擇 查看程式碼,在打開的 Microsoft Visual Basic for applications 視窗中,複製並粘貼以下程式碼到空白模組中:
VBA 程式碼:在列中單元格值更改時播放聲音:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20161223
Dim xCell As Range
On Error Resume Next
If Target.Columns.Count = 1 Then
If Intersect(Target, Columns(3)) Is Nothing Then
Exit Sub
Else
For Each xCell In Columns(3)
On Error Resume Next
If (xCell.Value = Target.Value) And (xCell.Value <> "") Then
Beep
Exit For
End If
Next
End If
End If
End Sub
注意:在上述程式碼中,腳本 Columns(3) 中的數字 3 是您希望在該列中值更改時播放聲音的列號。
2. 然後保存並關閉此程式碼視窗,現在,如果第三列中的單元格值發生變化,則會播放默認系統提示音。
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用