dポイントプレゼントキャンペーン実施中!

何か時間のかかる処理が終わったとき、ユーザーに処理が終わったことをビープ音で知らせたいと思います。1回だと気付きにくいので3回「ピッピッピッ」と鳴らしたいのですが、Beep を3回記述しても鳴りません。苦し紛れに下記の関数を作って間に合わせているのですが、間隔を1秒とっているのでちょっと間延びした感じです。もっとリズミカルに鳴らしたいのですが、いい方法があったらどなたか教えてください。
--------------------------------------------------------------------
Public Function beep3()
  Dim i As Integer
  Dim dend As Double

  For i = 1 To 3
    dend = Timer + 1
    Beep
    Do
      If Timer > dend Then
        Exit Do
      End If
      DoEvents
    Loop
  Next i
End Function

A 回答 (4件)

再びmaruru01です。



間にSleepを入れないと出来ない(条件によっては3回に聞こえることもあるけど)ですよ。
っていうか、BeepとSleepで私の環境では出来ましたけど。(VB6.0SP5、Windows2000SP2)
あっそうだ、Beepの引数はWindows95、98では無視されます。
では。
    • good
    • 0
この回答へのお礼

ありがとうございました。
自宅のパソコンは98なので、うまく動きませんでした。
仕事先では2000で、2000上で動かすアプリで使用したかったので大助かりです。

お礼日時:2002/04/09 21:12

こんにちは。

maruru01です。

WindowsAPIにも、「Beep」という関数があります。
APIのBeepは周波数(Hz)と秒数(ms)の2つの引数を持ってるので、音色(周波数)と鳴らす間隔(秒数)を調節出来ます。
各Beep間のインターバルはNo.2の方の通り、APIのSleepを使って調節出来ます。
どちらの関数も、MSDNライブラリーで詳細を参照して下さい。
関数の宣言はAPIビューアで取得して下さい。
では。

この回答への補足

ありがとうございます。
が、うまくいきません。
timer関数と同じで1回しか鳴りません。
周波数と間隔をいろいろと変えてやってみたのですが、3回Beepを記述しても1回しか鳴りません。

補足日時:2002/04/08 23:11
    • good
    • 0

こんにちは、honiyonです。



  確か Sleepという関数があったと思います。

  Sleep(1000) で 1秒待ちという意味になります。

  Beep
Sleep(1000)
Beep
Sleep(1000)
Beep

  でいかがですか?

  参考になれば幸いです(..

この回答への補足

ありがとうございます。
が、うまくいきません。
timer関数と同じで1回しか鳴りません。

補足日時:2002/04/08 23:09
    • good
    • 0

あまりお役に立てないかも知れませんが timer は 小数点以下も利用できるはずです。

 timer + 1 を timer + 0.3ぐらいにしてみては いかがでしょうか

この回答への補足

はい、1秒以下でも試しましたが、そうするとうまく3回鳴りません。
0.9以下でだめでした。ハードの周波数の問題とか聞きましたが、それをどうクリアしたらいいのか分かりません。

補足日時:2002/04/08 07:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A