• ベストアンサー

エクセル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

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。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

AQUALINE
質問者

お礼

なあるほど! ありがとうございました。

その他の回答 (1)

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

処理が早いので一瞬で終わるからでしょう。 MsgBoxで一旦止めないと切れ目が分からないと。 対策としてはウェイトをかければよいので、Sleep処理を入れればいいのですが、VBAには直接そういう便利なメゾットがないので。 ・WSHを使う ・APIを使う(参考URL) ・自作する(ループ処理の間に数秒待たせる) など。

参考URL:
http://www.asahi-net.or.jp/~ef2o-inue/api/sub08_01_060.html
AQUALINE
質問者

お礼

ありがとうございました。 大変勉強になります。

関連するQ&A