VBScriptでプログラミングの基礎教材を作ってみた

#00_はじめに

　VBScriptで、プログラミングの基礎について学習するための教材を作りました。
 「今さら、BASIC？」と思われるかもしれませんが、
〇　Windows上ですぐ動く　　　　（作動環境の設定不要）
〇　メモ帳で簡単編集　　　　　　（追加ソフトなし）
〇　ダブルクリックで実行　　　　（コンパイル不要）
〇　構文エラー等をきちんと指摘　（デバッグしやすい）
〇　BASIC なので初心者向け　　　（中学校レベルの英語）
など、プログラミング初心者に向いています。

　初めから「エラーが出る」サンプルファイルもあります。修正して動くようにしてください。
　修正、改良しながらプログラムの学習を進めるようにしました。

##学習のしかた
　サンプルファイルをダウンロードして、ファイルをメモ帳で開いて、課題に沿って学習を進めてください。
　↓サンプルファイルはこちら（展開してからご利用ください）。
http://iwate-manabi-net.sakura.ne.jp/download/VBScript_sample_program.zip

##プログラム実行のしかた
　メモ帳等でプログラムを修正したら、「上書き保存」してください。そのファイルをダブルクリックするとプログラムが実行されます。
　00_VBScriptの説明.vbs　をダブルクリックして実行してみてください。


#01_文字の表示.vbs

　01_文字の表示.vbs　をメモ帳で開いてください。
　01_文字の表示.vbs　をダブルクリックして実行してみてください。

１　課題
　「こんにちは」を表示するように変えましょう
　注意：文字は"半角ダブルクォーテーションで囲む"

　→　書き換えたら、メモ帳で「上書き保存」してください。
　→　そのファイルをダブルクリックしてプログラムを実行してください。


２　課題
　MsgBox(now)　　として今日の日付、現在の時刻を表示させて下さい。

３　発展
　today  に変更して、今日の日付を表示させてみましょう。
　time   に変更して、現在の時刻を表示させてみましょう。

　課題、発展はファイル内に記載しています。


```01_文字の表示.vbs

'★メッセージボックス
'１　課題
'「こんにちは」を表示するように変えましょう
' 注意：文字は"半角ダブルクォーテーションで囲む"
'２　課題
'MsgBox(now)　　として今日の日付、現在の時刻を表示させて下さい。
'発展
'today  に変更して、今日の日付を表示させてみましょう。
'time   に変更して、現在の時刻を表示させてみましょう。

MsgBox("Hello, world")

```

#02_文字変数の表示.vbs

　02_文字変数の表示.vbs　をメモ帳で開いてください。
　02_文字変数の表示.vbs　をダブルクリックして実行してみてください。
　※ファイル内の課題、発展のように書き換えてみましょう。

```02_文字変数の表示.vbs

'★文字変数
'課題
'変数に名前を入れて表示するように変えましょう
' a & b & c 
'課題
'シングルクォーテーションを削除してInputBox を使いましょう
'発展
' & vbCr  を入れて改行してみましょう  

Dim a,b,c
a = "こんにちは、"
b = ""
c = "です。"

'b = InputBox("名前を入れて下さい")

MsgBox(a)

```

#03_変数の計算表示.vbs

　03_変数の計算表示.vbs　をメモ帳で開いてください。
　03_変数の計算表示.vbs　をダブルクリックして実行してみてください。
　※ファイル内の課題、発展のように書き換えてみましょう。

```03_変数の計算表示.vbs

'★数値変数
'
'課題
'変数を使って足し算の計算をしましょう
'
'課題
'かけ算の計算にしましょう

Dim a,b,c
a = Cint(InputBox("a + b を計算します。a ="))
b = Cint(InputBox("a + b を計算します。b ="))
c = a

MsgBox("答えは " & c)

```

#04_くり返し.vbs

　04_くり返し.vbs　をメモ帳で開いてください。
　04_くり返し.vbs　をダブルクリックして実行してみてください。
　※エラーが出ます。修正しましょう。

```04_くり返し.vbs

'★くり返し
'指定された数値までの足し算を計算するプログラムを完成させましょう。
'（最大255までは計算できます）
'
'課題
'For Next文を完成させましょう

Dim kazu,kotae,siki,i
kazu  = Cint(InputBox("1から指定された数までの合計を計算します。1以上の数を入れて下さい。"))
kotae = 1
siki  = "1"

For i=2 to kazu
 kotae = kotae + i 
 siki  = siki & "+" & i 

MsgBox( siki & " = " & kotae)

```

#05_条件判断.vbs

　05_条件判断.vbs　をメモ帳で開いてください。
　05_条件判断.vbs　をダブルクリックして実行してみてください。
　※ファイル内の課題、発展のように書き換えてみましょう。

```05_条件判断.vbs

'★条件分岐
'
'課題
' < > <= >= を使って条件を変えてみましょう。
'
'発展
' リンゴ、スイカに文章を変えて、答えも変えましょう。

Dim a
a = Cint(InputBox("ミカンは何個まで食べることができますか？"))

If a = 1 Then
  MsgBox("普通ですね(-_-)")
Else
  MsgBox("食べすぎです(^_^);")
End If 

```

#06_条件くり返し_単語練習.vbs

　06_条件くり返し_単語練習.vbs　をメモ帳で開いてください。
　06_条件くり返し_単語練習.vbsをダブルクリックして実行してみてください。
　※エラーが出ます。修正しましょう。
　※単語を増やしましょう。

```06_条件くり返し_単語練習.vbs
'★条件分岐、くり返し、配列
'
'課題
' まずは３問が正しく表示されるようにしましょう。
'
'課題
' 単語を増やしてみましょう。

Dim mondai(10),kotae(10),tokuten

mondai(1) ="りんご"
kotae(1)  ="apple"
mondai(2) ="ミカン"
kotae(2)  ="orange"
mondai(3) ="イチゴ"
kotae(3)  ="strawberry"
tokuten = 0

For kaisuu = 1 to 1
  a = InputBox(mondai(kaisuu) & "を英語で答えなさい")

  If a = kotae(kaisuu) Then
    MsgBox(a + "　当たり。")
    tokuten= tokuten + 1
  Else
    MsgBox(a + "　はずれ。")
  End If

MsgBox(tokuten & "問を正当しました。")

```

#07_条件くり返し_クリックゲーム.vbs

　07_条件くり返し_クリックゲーム.vbs　をメモ帳で開いてください。
　07_条件くり返し_クリックゲーム.vbs　をダブルクリックして実行してみてください。
　※ファイル内の課題、発展のように書き換えてみましょう。

```07_条件くり返し_クリックゲーム.vbs

'★条件分岐、くり返し、乱数の利用、時間の計算
'クリックする秒数を計算するプログラムです。
'
'課題
' まずは5回クリックするようにしましょう。
'
'発展
' 励ましの文章を変えてみましょう。

Dim bun(1000),zikan
zikan = Time

bun(1) ="クリック"
bun(2) ="クリック、クリック"
bun(3) ="急ぐんだ！"
bun(4) ="まだ、まだ、まだ！！"
bun(5) ="ラストです"

For kaisuu = 1 to 2
  a = InputBox(bun(kaisuu),,,10000 * Rnd(1), 6000 * Rnd(1))
'　　　　　　　　　　　　　　　x座標↑　　　　Y座標↑
Next

MsgBox( (Time-zikan)*100000 & "秒かかりました。")

```

これで、プログラミングの基本である
・順次処理
・反復処理
・条件分岐処理
について学習できました。

ここまでよく頑張りましたね。
自分をほめてあげましょう。