- ベストアンサー
エクセルで警告音の出し方についての質問です。VBA
エクセルで警告音の出し方についての質問です。VBA データを外部から取り込みエクセルのグラフを作成しております。 データはランダムに数値が入ります。 数値が100以上の場合にPCから5分間、警告音を鳴らしたいのですがどのようなプログラムを組めばよいでしょうか? なお、警告音はエンターキを押して解除できるようにしたいです。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>データを外部から取り込みエクセルのグラフを作成しております。 あくまでも参考です。おそらく、データはOLEやDDEからでしょうから、データの監視方法は、以下のようではない可能性があります。Calculate イベントが良いかもしれませんが、Calculate イベントは、数式の =Now() などを目立たないシートのセルに置かなくてはなりません。なお、本来、エンターキーの監視は、別の方法もあるとは思いましたが、SelectionChangeイベントにしました。 '//シートモジュール Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) Public flgBeepOff As Boolean Private Sub Worksheet_Change(ByVal Target As Range) If Range("A1").Value > 99 Then Call Me.SoundBeepPro End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) flgBeepOff = True End Sub Sub SoundBeepPro() Dim myTime As Date Dim diffTime As Date flgBeepOff = False myTime = Time Do Sleep 1000 'サイクル 1/1000秒 = 1秒 If flgBeepOff Then Exit Do Beep DoEvents diffTime = Time - myTime Loop While TimeSerial(0, 5, 0) > diffTime '5分 End Sub p.s.リクエストを出すのは自由ですが、VBAをまったく考慮しないで、データの入り方とかも教えないままに、質問を出されるのは、回答側としては、結構辛いですね。ある程度、ここまで作りましたので、後、どうしたらよいか教えてくださいなら良いのですが、まるっきりお任せは良い場合とそうでない場合があります。実際のこの種の質問は、成功例が少ないです。
お礼
稚拙な質問にも関わらずご回答くださいましてありがとうございました。 作成いただきましたモジュールを参考に勉強させて頂きます。