کن می داند که چگونه فرمت های شرطی را در اکسل ایجاد کند. با این حال، کاری که او واقعاً میخواهد انجام دهد این است که در صورت وجود شرایط، اکسل صدایی قابل شنیدن (بوق یا هر چیز دیگری) بدهد.
هیچ راهی برای انجام این کار بدون استفاده از ماکرو وجود ندارد. اگر فقط می خواهید صدای بوق ایجاد کنید، می توانید از چیزی شبیه به این استفاده کنید:
Function BeepMe() As String
Beep
BeepMe = ""
End Function
تمام این عملکرد تعریف شده توسط کاربر این است که یک صدا را پخش می کند (که بسته به سیستمی که استفاده می کنید متفاوت است) و سپس یک رشته خالی را برمی گرداند. شما می توانید تابع را در کاربرگ خود به این صورت استفاده کنید:
=IF(A12>300,BeepMe(),"")
اگر می خواهید صدایی غیر از بوق پیش فرض سیستم پخش کنید، باید از عملکرد Windows API PlaySound استفاده کنید. کد زیر یک تابع تعریف شده توسط کاربر ایجاد می کند که صدای پیش فرض "tada" را که در بسیاری از نسخه های ویندوز رایج است پخش می کند.
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
Call PlaySound("c:windowsmedia ada.wav", _
0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
این تابع را می توان مانند مثال قبلی نامید:
=IF(A12>300,SoundMe(),"")
اگر می خواهید یک فایل WAV متفاوت را پخش کنید، به سادگی مشخصات فایل را در تابع SoundMe تغییر دهید.
توجه داشته باشید که کد باید در یک ماژول درج شده در ویرایشگر VBA وارد شود تا عملکرد به درستی کار کند.