実現したいこと
ここに実現したいことを箇条書きで書いてください。
VBAでbeep音を連続して鳴らせるようにする。
発生している問題・エラーメッセージ
なぜか、コードの8個目以降のbeep音がならないです。
理由はわかりません。
#開発環境
・MS Office Home and Business Premiumです。
・Microsoft® Excel® 2016 MSO (バージョン 2304 ビルド 16.0.16327.20200) 64 ビット です。
・PCはhp Laptop model14s
該当のソースコード
Option Explicit #If Win64 Then Declare PtrSafe Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long #Else Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long #End If '------------------------------------------------------------------------------------- Sub Main() Call Beep(440, 200) 'ラ Call Beep(440, 200) 'ラ Call Beep(440, 200) 'ラ Call Beep(392, 200) 'ソ Call Beep(440, 200) 'ラ Call Beep(392, 200) 'ソ Call Beep(440, 200) 'ラ 'これ以降のBeep音がなりません。。しかし、ブレークポイントに設定して途中で実行するとなります。 Call Beep(523, 300) 'ド Call Beep(523, 300) 'ド Call Beep(440, 200) 'ラ End Sub
MS Office Professional Plus 2021 のExcelVBAで試したところ問題なく全音なりました。
syukatsurouninさんの環境はOffice365でしょうか?
あと、#If Win64 Then の分岐を消して Declare PtrSafe Function 部分をひとつだけにしても出ないでしょうか?
crwomtさんコメントありがとうございます!
開発環境は、MS Office Home and Business Premiumです。
If文の分岐消して、Declare PtrSafe Function だけにしても、変わりませんでした。
Microsoft® Excel® 2016 MSO (バージョン 2304 ビルド 16.0.16327.20200) 64 ビット です。

あなたの回答
tips
プレビュー