
VBAでシステム音を鳴らす方法
を教えてください。
簡単な方法として
http://www.start-macro.com/55/w/s077.html
beep
BeepAPI Lib "kernel32.dll" Alias "Beep"
という二つの方法がありますが、
この音ではなくwindowsの警告音や起動音やシャットダウン音などの
システム音が使いたいのですがどうすれば良いでしょうか?
検索しても分かりませんでしたので
どなたか教えてください。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
少し修正。
標準モジュールには
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Const SND_SYNC = &H0 '同期的、演奏が終了するまで呼び出し元に制御は戻りません。
Private Const SND_ASYNC = &H1 '非同期的、すぐに制御が戻ります。
Private Const SND_NODEFAULT = &H2 '指定したファイルが無い場合でも、既定の音を鳴らしません。
Private Const SND_LOOP = &H8 'ずっと繰り返し演奏します。
Private Const SND_NOSTOP = &H10 '既に演奏中であれば何もしません。
Sub playSound(Optional soundFile As String = "c:\windows\media\chimes.wav")
Dim retVal As Long
retVal = sndPlaySound(soundFile, SND_ASYNC + SND_NODEFAULT)
End Sub
Sub stopSound()
Dim retVal As Long
retVal = sndPlaySound(vbNullString, SND_NODEFAULT)
End Sub
としておいて、
実際に呼び出す場合は
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Call playSound("C:\Windows\Media\Windows Exclamation.wav")
End If
End Sub
などとしておけば良いかと。
Call playSound とだけ指定すればチャイムが鳴ります。
(当方、Windows7 64bit & Excel2010 32bit)
No.2
- 回答日時:
msgbox "vbInformation の音", vbInformation という超手抜きは置いといて。
mciSendString の方が色々と細かい設定が出来るのですが、
鳴らすだけでしたら、sndPlaySound で十分かと思います。
但し、wav ファイル限定です。
以下を標準モジュールにてお試しを。
wav ファイルは、c:\windows\media\ に色々とあります。
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Const SND_SYNC = &H0 '同期的、演奏が終了するまで呼び出し元に制御は戻りません。
Const SND_ASYNC = &H1 '非同期的、すぐに制御が戻ります。
Const SND_NODEFAULT = &H2 '指定したファイルが無い場合でも、既定の音を鳴らしません。
Const SND_LOOP = &H8 'ずっと繰り返し演奏します。
Const SND_NOSTOP = &H10 '既に演奏中であれば何もしません。
Sub playSound()
Dim retVal As Long
Dim soundFile As String
soundFile = "c:\windows\media\chimes.wav"
retVal = sndPlaySound(soundFile, SND_ASYNC + SND_NODEFAULT)
End Sub
Sub stopSound()
Dim retVal As Long
retVal = sndPlaySound(vbNullString, SND_NODEFAULT)
End Sub
No.1
- 回答日時:
こんにちは。
Declare Function MessageBeep Lib "user32.dll" (ByVal wType As Long) As Long
http://chokuto.ifdef.jp/urawaza/api/MessageBeep. …
がありますが、
たぶん、こちらがわでしょうね。
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
ret =mciSendString("Play " & SoundFile, "", 0, 0)
SoundFileに、「C:\Windows\Media\」 から選んだものを設定すればよいです。
ただ、こちらで試すと、鳴るものとそうでないものがあるようです。
こちらで試した限りは、反応がすこぶる鈍いです。
一度、Dir *.wav でリストを出したもので使うとよいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 やってもうた。windows10起動せず。知恵を貸してください。 2 2023/02/08 11:36
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(パソコン・周辺機器) Windows10パソコンで再生している音をWAVファイルとして録音、保存する方法は? 4 2023/06/15 18:34
- Excel(エクセル) 2列のエクセルの表を変更したい 6 2022/07/01 11:19
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
- Windows 7 Windows 11へアップグレードする時の方法 7 2023/01/17 23:31
- その他(パソコン・スマホ・電化製品) タブレットにナビゲーションバーを表示させたい。 1 2022/07/24 20:34
- その他(IT・Webサービス) 簡単にホームページを作る方法ないですか? スマホアプリを少しいじったけどわかりませんでした… ショッ 2 2022/11/16 14:59
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで音を鳴らしたい
Excel(エクセル)
-
エクセル、条件を満たしたら音を鳴らす方法教えて下さい
Excel(エクセル)
-
ビープ音を連続して鳴らす
Visual Basic(VBA)
-
-
4
エクセルのBEEP音を変更したい
Excel(エクセル)
-
5
コマンドボタンを押したときにサウンドを鳴らしたい
Visual Basic(VBA)
-
6
VBAでMP3を鳴らしたい
Visual Basic(VBA)
-
7
エクセルで条件を満たした場合に音を鳴らしたいです。
Visual Basic(VBA)
-
8
VBAで音楽を再生させた後
PowerPoint(パワーポイント)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
VBA で警告音
Visual Basic(VBA)
-
11
Accessで音を出したい
その他(Microsoft Office)
-
12
ビープ音鳴らし続けたい。
Visual Basic(VBA)
-
13
beep音を変えたい
Visual Basic(VBA)
-
14
エクセル ボタンクリックでmp3ファイルを再生
Excel(エクセル)
-
15
フォントの大きさ
Visual Basic(VBA)
-
16
エクセルのセルや文字を点滅表示できますか?
Excel(エクセル)
-
17
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
18
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
19
パソコン音声のミュートをVBAから制御するマクロ
Visual Basic(VBA)
-
20
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【VBA】 結合セルに複数画像と...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】開いているブックの...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
Vba セルの4辺について罫線が有...
-
エクセルのVBAコードと数式につ...
-
エクセルの改行について
-
VBA ユーザーフォーム ボタンク...
-
Excelマクロで使うVBAコードを...
-
VBAの質問(Msgboxについて)です
-
VBAでセルの書式を変えずに文字...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】変数を使った、文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報