Как воспроизвести звук при выполнении определённого условия в Excel?
В Excel можно использовать условное форматирование для выделения и форматирования ячеек, соответствующих заданному условию, но иногда требуется, чтобы при выполнении этого условия воспроизводился звук. Например, если значение в ячейке A1 превышает 300, вы можете захотеть услышать звуковое уведомление. Поскольку Excel не поддерживает такую функцию напрямую, в этой статье я предложу несколько фрагментов кода VBA для её реализации.
Воспроизведение пользовательского звука на основе значения ячейки с помощью кода VBA
Воспроизведение звука при изменении значения ячейки в Укажите столбец с помощью кода VBA
Воспроизведение стандартного системного звукового сигнала на основе значения ячейки с помощью кода VBA
Вот удобный код для воспроизведения стандартного системного звукового сигнала при выполнении определённого условия. Выполните следующие действия:
1.Удерживая нажатыми клавиши ALT + F11, откройте окно Microsoft Visual Basic для приложений.
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 для приложений.
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, сразу же воспроизведётся указанный звук.
Примечания: В приведённом выше коде вы можете заменить звуковой файл формата WAV на любой другой из папки c:\windows\media\. Укажите путь к нужному файлу. См. скриншот:

Воспроизведение звука при изменении значения ячейки в Укажите столбец с помощью кода VBA
Если вы хотите, чтобы при изменении значения ячейки в столбце «Укажите столбец» воспроизводился звук, используйте следующий код VBA.
1. Щёлкните правой кнопкой мыши по ярлыку листа, на котором нужно воспроизводить звук при изменении значения в столбце, выберите в контекстном меню пункт Просмотреть код, и в открывшемся окне Microsoft Visual Basic для приложений скопируйте приведённый ниже код в пустой модуль:
Код 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

Примечание: В приведённом выше коде число 3 в строке Columns(3) обозначает номер столбца, при изменении значения в котором должен воспроизводиться звук.
2. Сохраните и закройте окно кода. Теперь при изменении значения ячейки в третьем столбце будет воспроизводиться стандартный системный звуковой сигнал.
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек