カウントダウン.xlsm とは
久しぶりに、
VBA でプログラミング入門 受講時の資料を見ていたら、
第2回のお楽しみの時間 で、
足し算練習問題 を作ってみよう で、
サンプルをいただいた時に、
もうひとつ、VBAで作成したサンプルをいただいてました。
カウントダウン.xlsm というファイルで、
カウントダウンのボタンを押すと、
B3セルの値が、5、4、3、2、1、0
とカウントダウンされていくVBAが入力されてます。
資料を読んでも???
説明の資料が、1枚付属してました。
(画像をクリックすると拡大表示します)
資料を読んでも、ちんぷんかんぷんなので、
プロシージャの中を見てみました
カウントダウン.xlsm のVBAを見てみました。
わりとシンプルなVBAが入力されてました。
↓
Sub countdown()
Dim cnt As Integer
For cnt = 5 To 0 Step -1
Application.Wait [Now()] + 1000 / 86400000 ‘待ち時間1秒(1000ミリ秒)
Cells(3, 2).Value = cnt
Next
End Sub
↑
変数の宣言 Dim cnt As Integer と、
Forループでcntを5から0まで1ずつ減らしていくのに、
1ずつ減らす部分に、Step -1を指定する
という説明くらいはわかるのですが、
1000/86400000 の意味がわからなくて、、、
1秒は、1ミリ秒を1,000個集めたもの。
1分は、 60秒
1時間は、60分=60秒 x 60(分)=3,600秒
1日は、 24時間=3,600秒 x 24(時間)=86,400秒
この1日=86,400秒をミリ秒に直すと、86400000という数字になります。
と、私は理屈で考えてしまいますが、
Application.Wait [Now()] + 1000 / 86400000
この部分が、なんなのか、
‘待ち時間1秒(1000ミリ秒) の説明があるので、
1カウントごとに1秒待ってを入れてるのかな
くらいに考えればいいのかなと思います。
資料にも、深く考えずに使う と書いてあるので、
決まりごとなので、覚えてしまうしかないのでしょう。
エクセルVBA Application.Wait [Now()]
で検索かけると、いろいろ出てくるので、
そういうサイトを読むのもいいと思いますが、
エクセルVBA 関連の書籍を読むのもいいと思います。
ちえりあ の2019 8/20 ~ 9/17 の、芦原先生の
『エクセルでプログラミング入門』講座を
受講した人に教えてもらいましたが、
ステップ30 ExcelVBA ワークブック
という本がいいということです。
VBA、まだまだ勉強していかないと理解できてません。
で、最近、ネットで見つけたサイト↓ 。
■ カテゴリー : Excel VBA 入門
https://www.sejuku.net/blog/category/programing/excel-vba/excel-vba-primer/page/8
■ Excel VBA超入門講座
http://excelvba.pc-users.net/index.html
■ たてばやし淳
https://www.youtube.com/watch?v=t3Bpj2xkjaM