こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

時計を現時点(パソコン時計)の時刻と同じにしたい

WEBで希望を実現できる記述を見つけられませんでしたので、ご指導を宜しくお願いします。

[現状の設定]
フォーム「名前:マスター」上のテキスト窓「名前:時計」を配置してコントロールソースに「=Time()」を書き込んであります。

[感じている不具合]
フォームを開いた瞬間はPC時刻になっていますが、その後は時刻が止まったままになります。

[実施した事]
WEBで下記の記述の紹介がありましたので、そのまま流用しそのまま貼り付けましたが、アクティブ「止まったまま」にはなりませんでした。

、「アクティブ時」
Private Sub Form_Activate()
Me.TimerInterval = 1000
Me.Caption = Time
Me.時計.Caption = Time
End Sub

、「非アクティブ時」
Private Sub Form_Deactivate()
Me.TimerInterval = 0
End Sub

[実現したい希望]
テキストボックス窓の時刻表示をアクティブにし、使用しているパソコンの時計時刻と同じにしたい。

以上ですが、アドバイスをお願いします。

投稿日時 - 2017-02-14 07:29:58

QNo.9293629

困ってます

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

Timerイベントの利用で解決できます。
以下はサンプルです。

https://support.office.com/ja-jp/article/-TimerInterval-タイマ間隔-プロパティ-9732dbbb-3f6f-4eb7-995d-b695f3d9d4b8
※リンクとして動作しないので、コピペしてください。

投稿日時 - 2017-02-14 09:28:17

補足

ご報告します。以下の記述が記載されていましたが。

私のケース「フォーム(名前:マスター)上のテキスト窓(名前:時計)を配置してコントロールソースに(=Time())を書き込んだだけで、閲覧用のみの使用です。」では、どの様なVBA記述になるのでしょうか。

ちなみに「マスター(フォーム)」の読み込み時イベントにカレンダーコントロールのVBAが書き込まれていますので、その直下に(Sub Form_Load() Me.TimerInterval = 1000 End Sub)をコピーしてみましたがエラ―になりました。※ちなみに、同じ名前のイベントに2つのVBAを書込(コピペ)んだ経験(可能か否かも知らないスキル)はありませんでした。


Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Sub Form_Timer()
Static intShowPicture As Integer
If intShowPicture Then
' アイコンを表示します。
Me!btnPicture.Picture = "C:\Icons\Flash.ico"
Else
' アイコンを非表示にします。
Me!btnPicture.Picture = ""
End If
intShowPicture = Not intShowPicture
End Sub

私のケースでのVBAの記述をアドバイス願えませんでしょうか。

投稿日時 - 2017-02-14 10:48:04

お礼

お世話になります。ご報告です。「WEBでやっと見つけました」

「フォーム(名前:マスター)」に配置した「テキスト窓(名前:時刻、レコードソース(=Time()」に対して、下記の記述でリアルタイムで時刻が表示されました。実際のところ、タイマ間隔の設定「デフォルト0のまま」をしていなかったのが今回の質問に繋がってしまいました。すいません。


1,マスター(フォーム)のプロパティー ⇒ イベントタブ ⇒ タイマ時(イベント名)
Private Sub Form_Timer()
Me.時刻「=Time()設定のテキストボックス名」.Requery
End Sub

2,イベントタブ ⇒ タイマ間隔(イベント名)
一応、WEBに紹介されていた「1000(デフォルト値0)」と設定しました。

以上ですが、ヒントを頂きましたので貴方をベストアンサーにいたしました。有難うございます。

投稿日時 - 2017-02-14 18:15:31

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問