category name  »  page title date

ポチッと音を出す

ボタンのクリックを受け付けたとか、警告を発したとかを知らせるために、音を出したいのだが、Beep だとちょっと仰々しすぎるとか、できれば簡単なメロディーにしたいとか、そう思うことがあります。

探すと、Windows API の中に、Beep という周波数と継続時間に応じた音を出してくれる関数がありました。まずは、これを使って音を出してみましょう。VBA の中の Beep と重複するので、宣言時に BeepAPI で呼ぶことにしました。

ポチッという音  ButtonChick()

#If Win64 Then
    Declare PtrSafe Function BeepAPI Lib "kernel32" Alias "Beep" _
    (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
#Else
    Declare Function BeepAPI Lib "kernel32"  Alias "Beep" _
    (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
#End If

'----- ポチッ
Public Sub ButtonChick()
       BeepAPI 1200, 5
End Sub

ButtonChick を呼ぶと、1200Hz の音が 5msec 鳴って、それがポチッという風に聞こえます(少なくとも私には)。
(最初の数行 #End If までは、API を使用するための宣言です)