こんばんは、エクセル2010を使っています。
Z23セルに、
=TIME(HOUR(Sheet1!D29), MINUTE(Sheet1!D29)-10,SECOND(Sheet1!D29))
が入っていて、時刻を表示させています。
この時刻になったら、アラームやBeep音を鳴らすのはどうしたら良いでしょうか。
ちなみに参照は30分おきくらいに更新されますので、出来ればその度に作業の無い物が理想です。
または、更新時に他のマクロが実行されますので、そのマクロに割り込ませる形でもOKです。
音声はファイルからではなく、簡易なもので結構です。
詳しい方、教えて頂けませんでしょうか。
よろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは。
>1:トグル? の状態ですと、時間内にマクロが実行されずに次のステップに移ると1回目に設定され、2回目は解除されてしまいます。
今の設定は、1つの時間だけ設定すれば、後は、実行されたら新しい設定が設けられるのです。こちらが、勝手に解除するオプションを付けてしまったのですが、残っているタイマーが思わぬ動きをする時があるからです。
もし、複数の設定の場合は、少なくとも、設定ボタンと解除ボタンを分けたほうがよいかもしれません。どちらがよいか、おっしゃってください。複数の設定する方法は、昔、どんな方法でやったのか、今はあまり覚えていませんので、試行錯誤になってしまうかもしれません。
>Beepを数回続けて鳴らそうと
>としてみましたが、変数が設定されていません的なエラーが出てしまいます。
>これを、実行させるにはどうしたら良いでしょうか。
ある程度の時間差が必要なのです。
''Option Explicit
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) 'モジュールの先頭に置く
Dim i As Long
For i = 1 To 10
Beep
DoEvents '←たぶんいらないはずです。
Sleep 300 'スリープは、0.3秒 500(0.5)秒ぐらいのほうが良いかも。
Next i
No.3
- 回答日時:
#2の補足
>セル値からの設定に無理があるようです。
言葉が少ないと気にされる人もいたり、誤解されるおそれがあるので、説明します。その都度変わる時間値をNOW()関数などで設定しても、やはり、つねに、Calculateイベントが働いていないので、時間が更新しないので、それをOnTimeメソッドに代入すると、過去の時間だから、エラーが発生する、と思ったからです。ともかく、あっちこっちに、MsgBox で正しく設定されているか確認して、掲示しました。なお、本来、MsgBox は、自動的に閉じるものの方がよいのかなって思いました。もし、そうだったら、ご指摘ください。
No.2
- 回答日時:
こんばんは。
必ず、フォームコントロールのボタンに取り付けてください。
このボタンはトグルになっていますので、設定を押してから、もう一度押すと、解除されます。
メッセージボックスは、確認のためだけに入れています。現在は解除とエラーの時だけ、メッセージが出るような設定がされています。入り方が、ボタンとマクロによる再設定の2つなので、ロジックはややこしいです。
>Application.OnTime EarliestTime:=Range("Z23").Value, Procedure:="Test"
>とやってみたのですが、この行でエラーが出てしまうんですよね・・・。
マクロ側の問題ではなく、Range("Z23").Value の問題だと思います。
確か、ご質問者さんは、データインポートの場合に、Calculate イベントは働いていたような気がしますが、それでも、セル値からの設定に無理があるようです。
30分後に再び鳴るようになります。
myTime = Date + Time + TimeSerial(0, 30, 0) '*30分の設定
Beep に関しては、一応、何かあれば、リクエストしてください。
Wavファイルでも可能です。
'//
Option Explicit
Dim myTime As Variant
Dim flg As Boolean
Sub ボタン1_Click() '必ずフォームコントロール・ボタン
'No. 8979529
If TypeName(Application.Caller) = "String" Then
If myTime = Empty Then
myTime = Range("Z23").Value + Date
If myTime <= Date + Time Then
MsgBox myTime & "では、設定できません。", vbExclamation
myTime = Empty
Exit Sub
End If
flg = True
Else
flg = False
End If
ElseIf myTime > Date + Time Then
'ボタンからではない場合
flg = True
End If
On Error GoTo ErrHandler
Application.OnTime EarliestTime:=myTime, _
Procedure:="myAlarm", Schedule:=flg
If flg = False Then
MsgBox myTime & "の設定は解除されました。", vbInformation
myTime = Empty
Else
'' MsgBox myTime & "は、設定されました。", vbInformation
End If
Exit Sub
ErrHandler:
If Err.Number <> 0 Then
MsgBox myTime & "は設定できませんでした", vbExclamation
End If
myTime = Empty
End Sub
Sub myAlarm()
Beep
''MsgBox myTime & "実行されました", vbInformation
flg = False
myTime = Date + Time + TimeSerial(0, 30, 0) '*30分の設定
''Range("A1").Value = myTime '次の時間
Call ボタン1_Click
End Sub
'///
No.1
- 回答日時:
OnTimeを使いますが
Sub ボタン1_Click()
Application.OnTime EarliestTime:=Range("Z23").Value, Procedure:="Test"
End Sub
Sub Test()
Beep
End Sub
こんな感じで使います。
Z23で指定した時間に Test()を実行すると云う予約をする感じです。
>ちなみに参照は30分おきくらいに更新されますので、出来ればその度に作業の無い物が理想です。
この更新された後のタイミングで、Ontimeが実行されるようにすれば、ご希望の動作になりますが
この部分が不明なので取り合えず、ここまでです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについて 1 2023/04/17 17:22
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 09:22
- Visual Basic(VBA) ExcelのVBAコードについて教えて下さい。 2 2022/06/25 14:04
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) 【再投稿】VBAのシフト表でバグが出て困っています 3 2022/09/24 08:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelで時刻になったら知らせてくれるように
Visual Basic(VBA)
-
エクセルにアラーム機能ってありますか?
Excel(エクセル)
-
エクセル条件付書式で指定の時間が過ぎていたらフォントの色を変える
Excel(エクセル)
-
-
4
エクセルVBAにおけるON TIMEメソッドの解除方法について
Visual Basic(VBA)
-
5
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
6
Excelで一定時間が経ったらメッセージを出したい
Excel(エクセル)
-
7
EXCELのセルへ、デジタル時計を表示できますか?
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
Excelで文字の点滅方法
Excel(エクセル)
-
10
OnTimeを使ったのですが「エラー」になってしまいます
Visual Basic(VBA)
-
11
Excel VBAで「プログラム実行」ボタンと「プログラム停止」ボタンをつけたい
Excel(エクセル)
-
12
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
13
OnTime の中断方法について
Excel(エクセル)
-
14
エクセルファイルで指定期間に自動ポップアップメセージを出す
Excel(エクセル)
-
15
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
16
excelで、指定した時間来たら、セルを、読み上げてくれる方法 例:A1セルに“時間です”と書き込み
Excel(エクセル)
-
17
エクセルシート(進捗管理)のアラーム設定について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
モトローラのmoto g52j 5Gのマ...
-
らくらくホン検索履歴残らない
-
昨日の夜から設定していないア...
-
開閉時の音について
-
テレビの画面表示や音量バー、
-
P-02Bのロックについて
-
F-01C 車アイコンの消し方 電話...
-
マナーモードにするとバイブが...
-
サイレントモードとマナーモー...
-
L-09CのINSERT UIM
-
ラインの文字入力がローマ字か...
-
SH-06Aの緊急地震速報の...
-
スマホのバイブ機能が一番強い...
-
トリマの歩数が昨日のままリセ...
-
「Rakuten Hand 5G」を急速充電...
-
paypayの月の利用額200万円まで...
-
恋人が携帯を紛失してしまった...
-
携帯の電源をきっても音が鳴る...
-
Windows PC で Outlook ビュー...
-
エクセルでテキストボックス内...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
モトローラのmoto g52j 5Gのマ...
-
らくらくホン検索履歴残らない
-
テレビの画面表示や音量バー、
-
スマホのバイブ機能が一番強い...
-
セルの時刻になったらアラーム...
-
至急お願いします。 Apple Watc...
-
スマートウォッチを探していま...
-
F-01C 車アイコンの消し方 電話...
-
もし外出中にスマートウォッチ(...
-
サイレントモードとマナーモー...
-
Mail送信のシューン、ゴミ箱を...
-
iチャンネルの削除方法
-
開閉時の音について
-
マナーモードにするとバイブが...
-
デジタル出力する時の本体スピ...
-
iPhoneのアラームは何秒鳴る?
-
Pixel3(ピクセル3)の指紋認証時...
-
ラインの文字入力がローマ字か...
-
SMSが送信できない
-
garaxy SC04J に対応するスマー...
おすすめ情報
回答ありがとうございますー
そうですよねー私も
Application.OnTime EarliestTime:=Range("Z23").Value, Procedure:="Test"
とやってみたのですが、この行でエラーが出てしまうんですよね・・・。
何故でしょうね?
回答いただき、ありがとうござます。
教えて頂いたコードでおおよそ、希望は実現できそうです。
こちらの利用環境で、ご指摘の通り時刻が過ぎている場合エラーが出ますので次の方法で対処しました。
=IFERROR(TIME(HOUR(Sheet1!D29), MINUTE(Sheet1!D29)-10,SECOND(Sheet1!D29)),"23:59:00")*1
それで、よろしければ2点ほど質問させていただきたいのです。
1点目
トグル? の状態ですと、時間内にマクロが実行されずに次のステップに移ると1回目に設定され、2回目は解除されてしまいます。
それで利用環境を良く考えてみると、1設定する時にマクロを新しく実行する形になりますので、1回目の質問に有るような、2回目の実行のパターンを視野に入れる必要はなさそうです。
2点目
Beepを数回続けて鳴らそうと
Beepの部分を
For i = 1 To 10
Beep
Next i
としてみましたが、変数が設定されていません的なエラーが出てしまいます。
これを、実行させるにはどうしたら良いでしょうか。
お手数かと思いますが、教えて頂けませんでしょうか。
よろしくお願いいたします。
再度の回答ありがとうございます!
時間の設定ループ設定 上手く行きました。
楽しいですね^^ ありがとうございます。
それで、1点目なのですが、1回目、2回目の概念を無くして、設定がされていても同じマクロを実行すれば今ある設定を解除するような仕様って言うのは不可能でしょうか。
現実的には、時間前にマクロを停止する事は無く、あるとすればファイルを閉じるか、次のマクロを実行する事なのです。
ここまで来ると自分では理解を超えていますので、教えて頂ければ嬉しいです。
よろしくお願いいたします。