• ベストアンサー

EXCEL2002でNOW関数により時刻が15分進む毎に,別のセルの値を+1ずつ増加させる方法

EXCEL2002でセルの時刻(A1)が15分更新されるのに対応させて、他のセル(B1)の数値を+1ずつ増加させる方法を教えて下さい! 例として, A1に9:00 というNOW関数で表示させた値が、9:15⇒9:30⇒9:45⇒10:00 と変化する度に、 B1の値を「1」を初期値として始まり、 1⇒2⇒3⇒4⇒5 と増加させる方法を教えて下さい!

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

標準モジュールシートに以下のマクロをペースとして、書き込み終了後もう一度開いてみてください。 テスト不十分につき、おかしければ補足に書いてくだされば、明日回答します。 Option Explicit Sub Auto_Open() Dim wkMIN As Integer, TargetTime, WaitTime, wktime wktime = Now wkMIN = Minute(wktime) wkMIN = Application.Floor(wkMIN + 15, 15) TargetTime = TimeValue(Application.Text(wktime, "hh") & ":00:00") _ + TimeValue("00:" & Application.Text(wkMIN, "00") & ":00") WaitTime = TimeValue("00:00:10") Range("B1") = 1 Range("C1") = TargetTime Application.OnTime TargetTime, "Macro1", WaitTime End Sub Sub Macro1() Dim wkMIN As Integer, TargetTime, WaitTime, wktime Dim a As String wktime = Now wkMIN = Minute(wktime) wkMIN = Application.Floor(wkMIN + 15, 15) TargetTime = TimeValue(Application.Text(wktime, "hh") & ":00:00") + _ TimeValue("00:" & Application.Text(wkMIN, "00") & ":00") WaitTime = TimeValue("00:00:10") Calculate With Worksheets(1) .Cells(1, 3) = TargetTime If .Range("B1") + 1 > 5 Then .Range("B1") = 1 Else .Range("B1") = .Range("B1") + 1 End If End With Application.OnTime TargetTime, "Macro1", WaitTime End Sub Sub auto_close() Dim i As Integer, TargetTime, wktime On Error Resume Next wktime = Now For i = 0 To 16 TargetTime = TimeValue(Application.Text(wktime, "hh:") _ & Application.Text(i, "00") & ":00") Application.OnTime TargetTime, "Macro1", , False Next i End Sub なおマウスの件、マウス自体が故障している可能性がありますから、別のマウスで試されるのも手です

TRADKING
質問者

お礼

 貴方は、なんて、お優しい方なのですか?  見ず知らずの私に対し、これほどの、お骨折りを頂きまして、感謝の言葉に絶えません。  本当に、有難うございます。   どうぞ、これからも、私のような初心者に、”優しい神”のような存在でいて下さい!  今日は、先ほどの本を、ひっくり返し読んで、よ~く勉強させて頂いて、また後ほど、質問させて下さい!

TRADKING
質問者

補足

 御作り頂いたプログラム、たいへん有難く使用させて頂きました。 せっかく、御作り頂いたプログラムですが、実行しますと、 Excelワークシートを毎回起動させると、デバッグを促すウィンドウ警告が現れ、プログラム中の 「TargetTime, WaitTime, wktime」というタイトル部分、 TargetTime = TimeValue(Application.Text(wktime, "hh") & ":00:00") _ + TimeValue("00:" & Application.Text(wkMIN, "00") & ":00") の部分が、エラー当該箇所だと表示されます。  一体、どのようにしたら良いでしょうか?

その他の回答 (3)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.4

OnTime メソッドを使って、15分ごとに 1.Calculateする 2.セルB1の値に1を加えるか、別途カウント用の変数に保持した値をセルB1に書き込む。(多分Microsoftの推奨は前者) 3.次回(15分後)のOnTime設定をする。 4.閉じるときはOnTime設定を解除する。 それだけです。 ヘルプを見て、必要な機能のみをシンプルに書く事をお勧めします。

TRADKING
質問者

お礼

いち早い回答、有難うございます。 自分でも、これまでの期間、質問のポイントを絞り込む為、試すがめつ、思考錯誤していましたところ、ついに、週末を迎えてしまいました。  その為、”論点を、更に絞った、精確な質問”を、次の新しい質問で、詳細に、行いたいと思います。  是非、皆さん、お答え頂けると、たいへん有難いです。  こちらの質問を、まだ、御覧下さっていて、『質問を締め切った』と、思われてしまうことは、本意ではありません。  それは、たいへん困りますので、『次の新しい質問』へ、”内容は変わらす、移行したこと”を、皆様が、周知して下さった段階で、『質問を締め切らせて頂きます』  ご了承下さい。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

過去に同様の質問がありますので、ご参照下さい。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2218976
TRADKING
質問者

お礼

 いち早い回答、有難うございます。  リンクを、細かく読んでいるうちに、いつの間にか時間が‥‥‥‥‥ 私は、現在、技術評論社の、幸い、書店で平積みになっていた本、 自分で選べる パソコン到達点 シリーズ これからはじめる エクセル関数&VBAの本 井上香緒里 著 / A4変形判 / 184ページ が、最新のもので、一番、★”易しく”★書かれていると言う評判を聞いて、一生懸命、学習中の身です。 この★一番”易しい”★★をキーワードに、良書を、ご紹介頂けないでしょうか?  何卒、宜しくお願いします。  ★★それと、緊急の事態で、つかぬことをお聞きしますが、今しがた、マウスが全く反応しなくなり、PCを再起動させました。  これまでも、対策として、何度も、★★マウスのドライバを再インストールし直し、使用を続けている★のですが、PCの状態は、不調なままです。  PCに、たいへんお詳しいようなので、何か良いお知恵を頂きたいのですが。如何でしょうか。

  • HiroBlue
  • ベストアンサー率22% (22/96)
回答No.1

セルの値を定期的にチェックするとなると、VBAには、タイマーコントロールが無いのですが、以下のURLでVBAで対応策が提示されています。 セルの値を定期的にチェックして・・というよりも、15分毎にカウントアップするという直接的な記述ができますね。

参考URL:
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips15.htm
TRADKING
質問者

お礼

 いち早い回答、有難うございます。  リンクを、細かく読んでいるうちに、いつの間にか時間が‥‥‥‥‥ 私は、現在、技術評論社の、幸い、書店で平積みになっていた本、 自分で選べる パソコン到達点 シリーズ これからはじめる エクセル関数&VBAの本 井上香緒里 著 / A4変形判 / 184ページ が、最新のもので、一番、★”易しく”★書かれていると言う評判を聞いて、一生懸命、学習中の身です。 この★一番”易しい”★★をキーワードに、良書を、ご紹介頂けないでしょうか?  何卒、宜しくお願いします。

関連するQ&A

専門家に質問してみよう