
こんばんは、エクセル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで時刻になったら知らせてくれるように
Visual Basic(VBA)
-
エクセルにアラーム機能ってありますか?
Excel(エクセル)
-
エクセル、条件を満たしたら音を鳴らす方法教えて下さい
Excel(エクセル)
-
-
4
EXCELのセルへ、デジタル時計を表示できますか?
Excel(エクセル)
-
5
エクセル マクロ 指定日の指定時刻にプロシージャを実行
Visual Basic(VBA)
-
6
ビープ音を連続して鳴らす
Visual Basic(VBA)
-
7
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
8
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
モトローラのmoto g52j 5Gのマ...
-
スマホのバイブ機能が一番強い...
-
セルの時刻になったらアラーム...
-
SIMロック解除済OPPO A79 5G Y!...
-
Mail送信のシューン、ゴミ箱を...
-
スマートウォッチの通知設定に...
-
スマホのXperia sov32を買いま...
-
機種変更した時の設定ってあり...
-
だれかおしえて! 携帯をAQU...
-
テレビの画面表示や音量バー、
-
マナーモードにするとバイブが...
-
全ての変数を一気にリセットす...
-
リンナイの食洗機エラーリセッ...
-
トリマの歩数が昨日のままリセ...
-
AQUOS BDのディスクトレイが開...
-
nasneについてです。 緑のラン...
-
マンガの広告をでなくなるよう...
-
「Rakuten Hand 5G」を急速充電...
-
恋人が携帯を紛失してしまった...
-
SONY NW-E507を誤ってWindowsフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
モトローラのmoto g52j 5Gのマ...
-
Mail送信のシューン、ゴミ箱を...
-
セルの時刻になったらアラーム...
-
テレビの画面表示や音量バー、
-
携帯電話の目覚まし機能について
-
IXY(PC1001)の日時設定方法
-
W52CAで決まった時間にバイブレ...
-
スマホの着信が鳴らない
-
スマホのバイブ機能が一番強い...
-
F-01C 車アイコンの消し方 電話...
-
携帯のアラームを使ってる人に...
-
GalaxySII とBmobileSIM
-
SH903iTV アラームが鳴らず困...
-
SH905iTV「アドレス帳の登録人...
-
iPhoneに対応しているスマート...
-
ドコモコネクションマネージャ...
-
スマートウォッチは、なぜ最近...
-
docomoのN-09Aの使い方に関して...
-
Illustrator CS3のメモリー
-
ドコモN504is
おすすめ情報
回答ありがとうございますー
そうですよねー私も
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回目の概念を無くして、設定がされていても同じマクロを実行すれば今ある設定を解除するような仕様って言うのは不可能でしょうか。
現実的には、時間前にマクロを停止する事は無く、あるとすればファイルを閉じるか、次のマクロを実行する事なのです。
ここまで来ると自分では理解を超えていますので、教えて頂ければ嬉しいです。
よろしくお願いいたします。