VBAで~ 第2回 もうひとつのお楽しみの時間

カウントダウン.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 

 

 

サイトマップ