- ベストアンサー
エクセルVBAでBeep音は?
エクセル2000、Win2000です。 VBAで音を出そうと、下記のマクロを記述しました。 ところが、「MsgBox i & "回実行しました。」の部分を、コメントブロックしたら一回しか鳴りません。ビー、ビー、ビーと三回鳴ると思ったのですが、どうしてでしょうか? Sub sound() Dim i As Integer For i = 1 To 3 Beep 'MsgBox i & "回実行しました。" Next i End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 間隔が短すぎるからでは? 適当にWaitをかけてはどうですか? 以下では1秒間を空けて鳴らします。 Sub sound() Dim i As Integer Dim StartTime As Single For i = 1 To 3 StartTime = Timer Do While Timer < StartTime + 1 DoEvents Loop Beep 'MsgBox i & "回実行しました。" Next i End Sub
その他の回答 (1)
- popesyu
- ベストアンサー率36% (1782/4883)
回答No.2
処理が早いので一瞬で終わるからでしょう。 MsgBoxで一旦止めないと切れ目が分からないと。 対策としてはウェイトをかければよいので、Sleep処理を入れればいいのですが、VBAには直接そういう便利なメゾットがないので。 ・WSHを使う ・APIを使う(参考URL) ・自作する(ループ処理の間に数秒待たせる) など。
質問者
お礼
ありがとうございました。 大変勉強になります。
お礼
なあるほど! ありがとうございました。