プロが教えるわが家の防犯対策術!

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

A 回答 (4件)

OnTime メソッドを使って、15分ごとに


1.Calculateする
2.セルB1の値に1を加えるか、別途カウント用の変数に保持した値をセルB1に書き込む。(多分Microsoftの推奨は前者)
3.次回(15分後)のOnTime設定をする。
4.閉じるときはOnTime設定を解除する。

それだけです。
ヘルプを見て、必要な機能のみをシンプルに書く事をお勧めします。
    • good
    • 0
この回答へのお礼

いち早い回答、有難うございます。
自分でも、これまでの期間、質問のポイントを絞り込む為、試すがめつ、思考錯誤していましたところ、ついに、週末を迎えてしまいました。

 その為、”論点を、更に絞った、精確な質問”を、次の新しい質問で、詳細に、行いたいと思います。

 是非、皆さん、お答え頂けると、たいへん有難いです。

 こちらの質問を、まだ、御覧下さっていて、『質問を締め切った』と、思われてしまうことは、本意ではありません。
 それは、たいへん困りますので、『次の新しい質問』へ、”内容は変わらす、移行したこと”を、皆様が、周知して下さった段階で、『質問を締め切らせて頂きます』

 ご了承下さい。

お礼日時:2006/07/28 23:30

標準モジュールシートに以下のマクロをペースとして、書き込み終了後もう一度開いてみてください。


テスト不十分につき、おかしければ補足に書いてくだされば、明日回答します。

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

なおマウスの件、マウス自体が故障している可能性がありますから、別のマウスで試されるのも手です

この回答への補足

 御作り頂いたプログラム、たいへん有難く使用させて頂きました。
せっかく、御作り頂いたプログラムですが、実行しますと、 Excelワークシートを毎回起動させると、デバッグを促すウィンドウ警告が現れ、プログラム中の

「TargetTime, WaitTime, wktime」というタイトル部分、

TargetTime = TimeValue(Application.Text(wktime, "hh") & ":00:00") _
+ TimeValue("00:" & Application.Text(wkMIN, "00") & ":00")

の部分が、エラー当該箇所だと表示されます。
 一体、どのようにしたら良いでしょうか?

補足日時:2006/07/28 23:54
    • good
    • 0
この回答へのお礼

 貴方は、なんて、お優しい方なのですか?

 見ず知らずの私に対し、これほどの、お骨折りを頂きまして、感謝の言葉に絶えません。

 本当に、有難うございます。 

 どうぞ、これからも、私のような初心者に、”優しい神”のような存在でいて下さい!

 今日は、先ほどの本を、ひっくり返し読んで、よ~く勉強させて頂いて、また後ほど、質問させて下さい!

お礼日時:2006/07/22 20:41

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



参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=2218976
    • good
    • 0
この回答へのお礼

 いち早い回答、有難うございます。
 リンクを、細かく読んでいるうちに、いつの間にか時間が‥‥‥‥‥
私は、現在、技術評論社の、幸い、書店で平積みになっていた本、

自分で選べる パソコン到達点 シリーズ
これからはじめる エクセル関数&VBAの本
井上香緒里 著 / A4変形判 / 184ページ

が、最新のもので、一番、★”易しく”★書かれていると言う評判を聞いて、一生懸命、学習中の身です。

この★一番”易しい”★★をキーワードに、良書を、ご紹介頂けないでしょうか?

 何卒、宜しくお願いします。

 ★★それと、緊急の事態で、つかぬことをお聞きしますが、今しがた、マウスが全く反応しなくなり、PCを再起動させました。
 これまでも、対策として、何度も、★★マウスのドライバを再インストールし直し、使用を続けている★のですが、PCの状態は、不調なままです。

 PCに、たいへんお詳しいようなので、何か良いお知恵を頂きたいのですが。如何でしょうか。

お礼日時:2006/07/22 18:23

セルの値を定期的にチェックするとなると、VBAには、タイマーコントロールが無いのですが、以下のURLでVBAで対応策が提示されています。



セルの値を定期的にチェックして・・というよりも、15分毎にカウントアップするという直接的な記述ができますね。

参考URL:http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips15.htm
    • good
    • 0
この回答へのお礼

 いち早い回答、有難うございます。
 リンクを、細かく読んでいるうちに、いつの間にか時間が‥‥‥‥‥
私は、現在、技術評論社の、幸い、書店で平積みになっていた本、

自分で選べる パソコン到達点 シリーズ
これからはじめる エクセル関数&VBAの本
井上香緒里 著 / A4変形判 / 184ページ

が、最新のもので、一番、★”易しく”★書かれていると言う評判を聞いて、一生懸命、学習中の身です。

この★一番”易しい”★★をキーワードに、良書を、ご紹介頂けないでしょうか?

 何卒、宜しくお願いします。

お礼日時:2006/07/22 18:15

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