返回列表 上一主題 發帖

EXCEL 發出聲音

解說得很詳細呢!

TOP

本帖最後由 StanleyVic 於 2012-7-19 16:29 編輯

這個例子的提問太好了. 學習了...
我沒想過會用在Excel 去介定 對/錯.
平常都只會其他.. or msbox 提示..
不錯不錯..謝謝..
NeverTry , NeverNo !

TOP

我終於發現錯在那裡, 原來在C:\Windows\Media\ 見到的中文檔案名稱. 原來是騙人
Windows 通知.wav 名稱, 原來真實檔案名稱叫 Windows Notify.wav
唔怪得播唔到,  
多謝各位耐心指教

TOP

辛苦了各位的指教,
試過了Sub OP 但奇怪在電腦內找不到tada.wav,
改用其它C:\Windows\Media\內的WAV檔反而播唔到
而Sub YY  去到Shell cmd, 6 顯示找不到檔案

而這問題會同電腦有關嗎?
現時電腦是WIN7 64BIT,  若執行到後, 在其它WINXP 電腦又會否出現問題

最終希望可以播到在C:\Windows\Media\ 內建的wav檔

TOP

回復 12# oobird

突然想到,BEEP還可以編曲
  1. Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

  2. Sub yy()
  3. f = Array(100, 523, 587, 659, 698, 784, 879, 987, 1030)
  4. d = Array(5, 3, 3, 0, 4, 2, 2, 0, 1, 2, 3, 4, 5, 5, 5, 0, 5, 3, 3, 0, 4, 2, 2, 0, 1, 3, 5, 5, 3, 0, 2, 2, 2, 2, 2, 3, 4, 0, 3, 3, 3, 3, 3, 4, 5, 0, 5, 3, 3, 0, 4, 2, 2, 0, 1, 3, 5, 5, 1)
  5. For i = 0 To UBound(d)
  6. Beep f(d(i)), 500
  7. Next
  8. End Sub
複製代碼

TOP

方法太多了,簡單寫幾個常用的:
  1. Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrcommand As String) As Long
  2. Private Const Mic = "C:\Windows\Media\tada.wav"
  3. Sub op()
  4. mciExecute ("play " & Mic)
  5. End Sub

  6. Sub yy()
  7. cmd = "sndrec32 /play /close ""C:\Windows\Media\tada.wav"""
  8. Shell cmd, 6
  9. End Sub
  10. Sub xx()
  11. Beep
  12. Application.Wait (Now + TimeValue("0:00:1"))
  13. Beep
  14. End Sub
  15. Sub ww()
  16. Set oSa = CreateObject("SAPI.SpVoice")
  17.         oSa.Speak "misinput"
  18. End Sub
複製代碼

TOP

修改了錯處, 但都是沒有聲音
不肯定是否電腦問題

但請問若想簡單一點, 內建除了BEEP 聲外
還會有其它聲音嗎?
或如果要連繼BEEP 兩聲, 應該如何呢?

TOP

回復 9# enoch
你少了\
Function PlaySound(Msg As Boolean)
    Dim Spath As String, Cmd As String
    Spath = "C:\Windows\Media\" & IIf(Msg, "Windows 開香檳.wav", "Windows 通知.wav")
    '存放音效的路徑: "C:\Windows\Media\"
    Cmd = "C:\Program Files (x86)\Windows Media Player\wmplayer.exe " & Chr(34) & Spath & Chr(34)
    '播放音效的程式: "C:\Program Files\Windows Media Player\wmplayer.exe " <-這裡要空一格
    Shell Cmd, 0
End Function

TOP

不好意思, 我實在不明白錯在那裡,
可否再次指教嗎?

sound.zip (9.87 KB)

TOP

回復 5# enoch
1.自訂函數
2.儲存格寫下公式如:  =IF(A1>5,PlaySound(TRUE),PlaySound(FALSE))
  1. Option Explicit
  2. Function PlaySound(Msg As Boolean)
  3.     Dim Spath As String, Cmd As String
  4.     Spath = "C:\Windows\Media\" & IIf(Msg, "Windows XP 啟動.wav", "Windows XP 登出音效.wav")
  5.     '存放音效的路徑: "C:\Windows\Media\"
  6.     Cmd = "C:\Program Files\Windows Media Player\wmplayer.exe " & Chr(34) & Spath & Chr(34)
  7.     '播放音效的程式: "C:\Program Files\Windows Media Player\wmplayer.exe " <-這裡要空一格
  8.     Shell Cmd, 0
  9. End Function
複製代碼

TOP

        靜思自在 : 一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
返回列表 上一主題