信号機の詳細なプログラムを紹介します。マクロの編集画面を表示すると見ることができます。
マクロって言うけど、その中味はどんなん?って方向きです。
見本のプログラム
「見本のプログラム」ボタンを押すと動作するマクロです。
*********************************************
Sub メインプログラム()
Dim i As Long ' 繰り返し変数の宣言
Call 一秒待つ
Call 車黄点
Call 車青滅
Call 一秒待つ
Call 車黄滅
Call 車赤点
Call 一秒待つ
Call 歩行赤消灯
Call 歩行青点灯
Call 五秒待つ
For i = 1 To 3 ' 繰り返す回数
Call 歩行青消灯
Call 半秒待つ
Call 歩行青点灯
Call 半秒待つ
Next i 'ここまでを繰り返す
Call 歩行青消灯
Call 歩行赤点灯
Call 一秒待つ
Call 車青点
Call 車赤滅
End Sub
****************************************
細かなプログラムの詳細
上のプログラムの漢字部分の細かな動作を規定しているマクロです。一つのモジュールにまとめて記載しています。
*********************************************
点滅のプログラム
Sub 歩行青点灯()
' 歩行者用信号機のMacro
ActiveSheet.Shapes("Picture 36").Select
Selection.ShapeRange.Left = Range("F9").Left
Selection.ShapeRange.Top = Range("F9").Top
Range("A1").Select
End Sub
「画像36を選び、その画像の左側を、F9セルの左側に合わせろ。その画像の上辺をF9セルの上辺に合わせろ」そして、選択したままにならないように「A1に移動しろ」って意味です。以下は同じようなものなので詳細は省略
Sub 歩行青消灯()
Sub 歩行赤点灯()
Sub 歩行赤消灯()
Sub 車青点()
Sub 車青滅()
Sub 車黄点()
Sub 車黄滅()
Sub 車赤点()
Sub 車赤滅()
Sub 消灯()
' 背景になる車用信号機を規定の位置へ'
Sub 歩行消灯()
' 背景になる歩行者用信号機を規定の位置へ
時間待ちのプログラム
Sub 半秒待つ()
Application.Wait [Now()+"00:00:00.5"] '現在時刻より0.5秒待機
End Sub
以下は同じで数値が違うだけなので詳細は省略
Sub 一秒待つ()
Sub 五秒待つ()
************************************************
消灯の二つのプログラムは、いずれの信号灯も点灯していない背景になる画像を定位置に置くためのもので、プログラミングには使いません。
子どもたちが打ち込むプログラム
上の細かなマクロプログラムとは別に、この一つだけを別のモジュールに記載しています。ここに打ち込んだプログラムは「あなたのテストプログラム」ボタンで走らせることができます。
*********************************************
Dim i As Long ' 繰り返し変数の宣言
Sub テストプログラム()
' 信号機のプログラム
Call 車青滅
For i = 1 To 3 ' 繰り返す回数
Call 歩行青消灯
Call 半秒待つ
Call 歩行青点灯
Next i 'ここまでを繰り返す
End Sub ' ここでプログラム終わり
************************************************
このあいている行に、考えたプログラムを書き込んで、テストランをさせます。