The following two tabs change content below.




taka
あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
ユーザーフォームに時計をつけてみる
今回はExcel VBAのユーザーフォーム上に時計を付けてみようと思います。あまり必要ないかもしれませんが暇つぶしにでもご覧ください。
作成イメージ


今回はこのように秒まで表示して動く時計を作成したいと思います。
時計を作成してみる
まず時計を作成するにあたり、今回用意するものは
- UserForm
- Label
この二つだけです。下記のコードをコピーしてももらえればすぐ使えます。
下で解説をしますので理屈を知りたい方引き続きご覧下さい。
Private Sub UserForm_Activate() Dim counttime As Variant Do While UserForms.Count > 0 counttime = Format$(Time(), "h:nn:ss") Label1.Caption = counttime DoEvents Loop End Sub
コードの解説
まず時計は随時動いていなければいけません。
Private Sub UserForm_Activate()
ですのでUserForm上のイベントは【Activate】にしておかなければいけません。
続いて変数の宣言ですが、変数の宣言の型は【String】で宣言します【Variant】でも構いません。
Dim counttime As String
ここからが処理のお話になります。
Do While UserForms.Count > 0 counttime = Format$(Time(), "h:nn:ss") Label1.Caption = counttime DoEvents Loop
今回の処理は【Do …Loop】を使用して条件を指定します。指定する条件は【UserForms.Count > 0】UserForms.Countはフォームを開いている数を返します。なので今回は【1】を返してきます。
While は条件が正しい間繰り返す条件ですのでUserFormが一つでも開いている場合繰り返すという処理です。
データの書式を整える【Format関数】と現時点の時間を返す【Time関数】を使用して表示するデータを整形していきます。
Label1.Captionでラベルにデータを表示します。
DoEventsは処理の途中にOSに制御を移す関数です、この関数を使わない場合うまく処理できなくなってしまうので必ず使用してください。
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す