Beep音はいざというときに重要な役割をします。
VBAを使えば、好きなBeep音を好きなタイミングで鳴らすことができます。
今回はVBAでBeep音を鳴らす方法について徹底的に説明します。
VBAでBeep音を鳴らす方法
Beepメソッド
VBAにはBeep音を鳴らすことができるBeepメソッドが用意されています。
音を鳴らしたい箇所にBeepと記述することでBeep音が鳴ります。
Beepメソッドを使用したサンプルコード
Sub Beep音()
Beep
End Sub
記述方法はただ一言「Beep」と記述すればOKですが、Beep音が鳴るのはほんの一瞬だけです。
時間にすると1秒くらいです。
音の長さはPCの環境によって異なりますが、いずれにしても一瞬しか鳴りません。
もしBeepをFor文で繰り返し処理をしたとしても、PCによってはFor文の最後の1回しか鳴らない場合がありますので注意が必要です。次に紹介するBeepAPIメソッドでは、より高度なBeep音について説明します。
BeepAPIメソッド
先ほどのBeep音をよりも高度な音を鳴らすことができるのがBeepAPIメソッドです。
BeepAPI(周波数Hz, 音の鳴動時間ms)
音の周波数は37~32767Hzの範囲で設定できます。
BeepAPIメソッドを使用したサンプルコード
Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Sub Beep音()
Call BeepAPI(262, 600) 'ド
Call BeepAPI(294, 600) 'レ
Call BeepAPI(330, 600) 'ミ
Call BeepAPI(349, 600) 'ファ
Call BeepAPI(392, 600) 'ソ
Call BeepAPI(440, 600) 'ラ
Call BeepAPI(494, 600) 'シ
Call BeepAPI(523, 600) 'ド
End Sub
最初の2行は定型文としてそのまま記述すれば問題ありません。
音階の「ドレミファソラシド」が鳴るようになっています。
音の高さを変更したい場合は第1引数の数値を変更し、音の長さを変更したい場合は第2引数の数値を変更します。
ShellでWindows Media Playerを起動する
最後に、 Shellを使ってWindows Media Playerを起動して音楽を再生する方法を紹介します。
難しいことはなく、たった1行記述するだけで音楽を再生させることができるのでぜひオススメです。
ShellでWindows Media Playerを起動するサンプルコード
Sub Beep音()
Shell "C:\Program Files\Windows Media Player\wmplayer.exe C:\Users\diren\Music\16885339.m4a", 1
End Sub
「Shell “C:\Program Files\Windows Media Player\wmplayer.exe」は、Shellというものを使ってWindows Media Playerを起動させます。Media Playerのファイルパスを記述します。
その行の後半の「C:\Users\diren\Music\16885339.m4a”, 1」は、再生させたい音楽ファイルのパスを記述します。末尾の「1」は、Media Playerを表示させて音楽を再生させ、「0」にするとMedia Playerを表示させずに音楽を再生させます。
コメント