[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/09/28(Tue) 21:04
投稿者名:nao
Eメール:
URL :
タイトル:
タイマーの使用方法
お世話になります。
フォーム上に、現在の時刻と、アラームを鳴らしたい時刻(11:00)を表示させたテキストボックスを配置させ、その時刻になると、アラーム(beep音)がなるようなプログラムを作りたいのですが、うまくいきません。

Private Sub Form_Load()
  Call Timer1_Timer
   Label1.Caption = Time
     If Label1.Caption = Text4.Text Then
     Call BeepSOUND1
     End If
End Sub

Sub BeepSOUND1()
    Dim i As Integer
    For i = 1 To 100
     Beep   'ビープ音を鳴らす
    Next i
End Sub

Private Sub Timer1_Timer()
        Label1.Caption = Time$
End Sub

良い方法はないでしょうか。
よろしくお願いします。

投稿時間:2004/09/28(Tue) 21:25
投稿者名:kamurin
Eメール:kamurin@hotmail.com
URL :
タイトル:
Re: タイマーの使用方法
おそらく、
Timer1_Timerで取得した時間とText4.Textが、
ぴったり同じ時間を格納していないからだと思います。
Private Sub Timer1_Timer()
        If Label1.Caption <= Time$ Then
            Call BeepSOUND1
        End If
End Sub
でどうでしょう

投稿時間:2004/09/28(Tue) 23:11
投稿者名:YAS
Eメール:yasunari@sakai.atnifty.com
URL :
タイトル:
Re: タイマーの使用方法
naoさんこんにちは。

> Private Sub Form_Load()
>   Call Timer1_Timer
>    Label1.Caption = Time
>      If Label1.Caption = Text4.Text Then
>      Call BeepSOUND1
>      End If
> End Sub

これだとフォームをロードしたとき1回だけしか時間の判定をしないのではないでしょうか。
時間を比較してアラームを鳴らす処理はタイマーの方に書いたらよいと思います。
タイマーとラベルとテキストボックスをフォームに配置して次のリストでお試しください。
(テキストボックスには「11:00:00」のように記入しておいてください。)

Private Sub Form_Load()
    Timer1.Interval = 1000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Label1.Caption = Time$
    If Label1.Caption = Text1.Text Then
        Beep
    End If
End Sub

ちなみにbeepを何回ループさせても当方の環境では1回しか鳴りませんでした。
サウンドカードが違ったり,なかったりするとブーーとなるのかもしれません。