Excel 判断条件发出声音

本人办公室里遇到这么一个问题求教高手解决:
假设在A3中写了这么一个函数: =if(a1=a2,"OK","NG"),如果A1=A2的话在A3就显示OK,如果不等于的话就显示NG。现在想要问的就是,如何用声音来判断这个条件,假设A1=A2的话,会朗读自定义的一个语音文件,不等于的话又会朗读另一个语音文件?注意要自定义的,不要MS自带的语音朗读,因为办公室里的没有装这个功能,Office版本是2003的。
可以实现吗,如果可以的话,请不吝赐教,100积分奉上。
另:请看仔细哈,不要乱复制一大堆,对于解决问题的高手,我们是崇敬加佩服的!对于乱复制别人答案的伪高手,我们只有鄙视!
用VBA的话,能否告知具体代码,我感觉也应该是用VBA实现的。上次在EXCELHOME看到一高手实现了这个,但是不知道怎么代码我复制下来运行时老出错,还请高手告之,期待中.......

公式这样写:
=IF(A1=A2,"OK",alarm("NG"))

说明:alarm("NG"),是用宏做的自定义函数,其中的"NG"为你需要在Excel单元格中显示的内容,声音文件在宏中调用,可自行更改

宏代码如下,测试OK:(将它添加到当前文件或个人宏工作溥的“模块”中)
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long

Function alarm(str As String) As String
Dim WAVFile As String
alarm = str
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
WAVFile = "C:\WINDOWS\Media\Windows XP 错误.wav" '此为声音文件,可以改为自己需要的
Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
End Function
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-03
A3写=IF(A1=B1,"same","different")
本表单的change事件写(工程窗口选本表单,代码窗口选worksheet--change)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Or Target.Address = "$B$1" Then Range("$C$1").Speak
End Sub
第2个回答  2009-11-03
你的想象太大胆了,这毕竟是个文字处理软件。。。如果真有高手能用纯MS软件做到,小弟真佩服了。

你说的那个EXCELHOME的帖子,我好想找到了http://club.excelhome.net/viewthread.php?tid=16745
不过附件下下来打开没什么效果,难道是我用的EXCEL2007的原因
第3个回答  2009-11-03
关注!我帮你找找。
第4个回答  2009-11-03
把代码贴出来看看
相似回答