Windows APIを使って音を鳴らす方法です。Excel自体の機能で音を鳴らしたい場合はBeepとShellの記事を参照してください。
関数のAPI宣言
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String,ByVal uFlags As Long) As Long
Windowsの機能であるAPIを使用する場合、VBA側では最初に使う旨宣言する必要があります。
要するにこのコードを一番最初にコピペすればOKです。
要するにこのコードを一番最初にコピペすればOKです。
![sndplay1](https://sunagitsune.com/wp-content/uploads/2021/02/sndplay1-1-650x203.jpg)
入力すると、64bitの場合エラーが出るので、
Declare PtrSafe Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
エラー内容の指示に従い、Functionの前にPtrSafeを入力しておきます。
sndPlaySound関数の使い方
![sndplay2](https://sunagitsune.com/wp-content/uploads/2021/02/sndplay2.jpg)
まず最初にsndPlaySoundを書きます。
![sndplay3](https://sunagitsune.com/wp-content/uploads/2021/02/sndplay3.jpg)
sndPlaySound関数には引数がふたつあって、よく見るとAPI宣言でも宣言されています。
ひとつはlpszSoundNameで、ファイルのパスを拡張子まで含めて記述します(パスの取得方法もShell参照)。今回はWindowsのMediaフォルダにあるWavファイルを再生することにします。
ひとつはlpszSoundNameで、ファイルのパスを拡張子まで含めて記述します(パスの取得方法もShell参照)。今回はWindowsのMediaフォルダにあるWavファイルを再生することにします。
![sndplay4](https://sunagitsune.com/wp-content/uploads/2021/02/sndplay4.jpg)
もうひとつはuFlagsで、0と1を指定できます。
0だと音声再生中はExcelの処理が停止(操作も不可能)、1だと再生中も処理続行、となります。
0だと音声再生中はExcelの処理が停止(操作も不可能)、1だと再生中も処理続行、となります。
![sndplay5](https://sunagitsune.com/wp-content/uploads/2021/02/sndplay5.jpg)
引数のフィールド名は普通のメソッド同様、所定の順番で書くことで省略可能です。
' vba
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
' エラー出る場合はDeclare PtrSafe Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Option Explicit
Sub macro1()
' uFlagsが0だと曲再生中何もできなくなるので注意
sndPlaySound "C:\Windows\Media\Alarm04.wav", 0
End Sub
![](https://sunagitsune.com/wp-content/uploads/2018/10/gui-2311261_1280.png)
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント