Wave音を再生するサブルーチンです。
Call ktSound( 音種, 再生方法 )
音 種 ‥‥‥ String 型 再生方法 ‥‥‥ Integer 型
音 種 ‥‥‥ 再生するWaveファイルを指定します。
文字列で「"1", "2", "3"」 とすれば、下記の3音を指定できます
(カッコ内はkt関数アドインで用意している定数名です)。
"1" (kt_Ding ) Windowsディレクトリ内の[Media\Ding.wav]
"2" (kt_Chord ) 〃 [Media\Chord.wav]
"3" (kt_Notify ) 〃 [Media\Notify.wav]
[Ding.wav (ピ〜ン)]→MsgBoxでアイコン無しの時の音
[Chord.wav (ボン)]→MsgBoxでアイコン有りの時の音
[Notify.wav (ピポ)] →メール着信音
Ver 5.00 より下記の 「音種」 が追加されました。
サウンドファイル名の直指定に拠らず、コントロールパネル/サウンド
で設定されているサウンド を鳴らすことができます。
"Default" ・・・ システム音 : 一般の警告音
"Critical" ・・・ システム音 : システムエラー
"Question" ・・・ システム音 : メッセージ(問い合わせ)
"Exclamation" ・・・ システム音 : メッセージ(警告)
"Information" ・・・ システム音 : メッセージ(情報)
"New Mail" ・・・ システム音 / 新着メールの通知
上記の音以外を再生する場合は、そのWaveファイルのフルパス(ドライブから)を指定します。
再生方法 ‥‥‥ 下記のいずれかを指定します(カッコ内はkt関数アドインで用意している定数名です)。
1 (kt_ASYNC ) →非同期再生(1回のみ再生)
2 (kt_Chime ) →非同期再生(連続再生)
3 (kt_SYNC ) →同期再生(1回のみ再生)
9 (kt_WaveStop ) →連続再生の場合の[停止]指示
APIの[PlaySound]関数を使用してWave音を簡単に再生できます。
従来[Beep ステートメント]による音しか利用できなかったVBAで、任意の警告・注意音を利用する
事ができます。「ktMsgBox 関数」で利用しています。
「同期再生」はWave音の再生が終了するまで、呼び元に戻りません。
「非同期再生」は直ぐに呼び元へ制御が戻り、Wave音の再生と平行して処理を進める事ができます。
「非同期/連続再生」の場合は、 「停止」指示を出すまで延々と再生が続きますので、必ず「停止」
指示を出す手段を用意して下さい(停止ボタンを用意してクリックイベントで停止、処理の開始時に
再生を始めて終了時に停止など)。
※ 開発中に停止手段を用意する前に連続再生してしまった場合や、何らかの原因で停止指示を
出す前にエクセルがダウンしてしまった場合などに対処する為に、『kt関数メニュー/バージョン』
画面に【再生停止ボタン】を用意してあります。
メール着信音を1回再生
Call ktSound( kt_Notify, kt_ASYNC )
メール着信音を連続再生
Call ktSound( kt_Notify, kt_Chime )
メール着信音( システム音 / 新着メールの通知)を1回再生
Call ktSound( "New Mail", kt_ASYNC )
連続再生中のWave音を停止
Call ktSound( "", kt_WaveStop )
入力エラーで[Beep]の代わりに利用
IF Not IsNumeric(TextBox1.Value ) Then
Call ktSound( kt_Ding, kt_ASYNC )
Cancel = True
Exit Sub
End If
既定の3音以外を再生(下記はWin98/Excel2000の場合の例です)
Call ktSound( "C:\Program Files\Microsoft Office\Office\REMINDER.WAV", kt_Chime )