Excel VBA入門 その46:VBAでBeep音を鳴らす方法

エクセルVBA VBA



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を表示させずに音楽を再生させます。

コメント

タイトルとURLをコピーしました