アプリ版:「スタンプのみでお礼する」機能のリリースについて

A1セルにリアルタイムの時刻が表示されているシートですがB1にOkといれたとしてこれをある時刻になると自動で毎日消えるマクロをどなたかお答えいただければと思い投稿します。

例ですが、
A1が15:30になったらB1のセル内にある文字例えばOKが消えるというものでこれを毎日行いたく思ってます。朝8:00にOKをB1に入力その後夕方の15:30になると消えるという感じです。関数ではちょっと無理そうなのでマクロにてお願いできればと思います。
また、時間ですが、日にちを一日またいでというのも検討いただきたいのです。
例えば朝8:00にB1にOKを記載して翌日のAM5:30になったら消えるという感じのものです。

OKの入力は毎日行う作業です。ちょっとわかりずらいかもしれませんが検討よろしくお願いします。

質問者からの補足コメント

  • マクロありがとうございます。A1はnow関数とちょっとしたマクロ使用してます。4行くらいのものです。いただいたマクロなんですが、ちょっとうまくいかない感じです。これはtimevalueのあとに任意の時間を入力すると稼働するかんじですか?
    このままでいれてみたのですが、a1が指定時刻(例えば15:00)を過ぎてもb1に記入している文字は消えないままなのですが、素人ですみません。ご検討お願いします。
    また、最後の行にprivateとありますが、この下にend subをいれないとマクロ無効になってしまうので自分で最後の行にend sub書き込んでます。これが原因でしょうか?

      補足日時:2017/12/31 14:58

A 回答 (4件)

#1の回答者です。



>A1はnow関数とちょっとしたマクロ使用してます。
>最後の行にprivateとありますが、この下にend subをいれない
そんなハズはないのですが、もう一度よく見ていただきたいのです。
私のコードは、あくまでも、内部PCの時間ですから、#1の表示は直接的にはありません。なお、これらは、一番簡単な部類のものに入ります。高度なものもありますが、今のところは、やめておきます。

Sub OnTimeTest()
'--略--
End Sub
'------------
Private Sub TimeMacro()
'--略--
End Sub

'----------

リアルタイプ表示は、こんな内容でしょうか。負担をなるべく減らすように作らないといけません。

'-標準モジュール
Option Explicit
Dim flg As Boolean
Dim myTimeReal As Date
'-------------
Option Explicit
Dim flg As Boolean
Dim myTimeReal As Date
Sub TestCalculation()
myTimeReal = Now + TimeValue("0:1:0")
Application.OnTime myTimeReal, "TestCalculation"
 Range("A1").NumberFormat = "hh:mm"
 Range("A1").Value = myTimeReal
DoEvents
End Sub

'-------------
Sub QuitWatch()
  '終了のためのマクロ
  Application.OnTime myTimeReal, "TestCalculation", , False
  Beep
End Sub
    • good
    • 1
この回答へのお礼

何回もありがとうございます。できました。たすかりました。ベストにさせていただきます。

お礼日時:2018/01/02 08:13

先ほどの質問にお答えいただけないので、勝手に少なくても指定時刻には立ち上がっている物としての回答になります。


対象のシートの「Worksheet_Change」イベントに書き込んでください。
--------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Format(Target.Value, "hh:mm") = "15:30" Then
Range("B1").ClearContents
End If
End If
End Sub
--------------------------------------------------------------------------------
「エクセル」の回答画像3
    • good
    • 0

念の為確認しますが、このブックは常時開いていて閉じる事は無いのでしょうか?


もし閉じるのでしたら、どこかに作業として使っていいセルを作っても良いのでしょうか?
    • good
    • 0

>A1セルにリアルタイムの時刻が表示されているシートですが


これ自体がマクロですね。Win APIを使っているのでしょうか?
それとも、ActiveX コントロールでしょうか。
それでも、以下のマクロはたぶん、問題はないと思います。
ただし、この場合は、ブックを開けたままの状態という前提です。

Sub OnTimeTest()
 Dim SetTime As Date
 SetTime = TimeValue("1:00")
 'もし、現在の時刻よりも前の時間に設定されれば、24時間後の時間
 If SetTime < Now Then SetTime = 1 + SetTime
 Application.OnTime SetTime, "TimeMacro", TimeSerial(0, 1, 0), True
End Sub
Private Sub TimeMacro()
 ThisWorkbook.Worksheets("Sheet1").Range("B1").Value = ""
 Beep
End Sub
    • good
    • 0

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

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