Hello World.

と、言ったわけでとりあえずはプログラム言語の習得手順ではお約束のHello Worldプログラムを作ってみます。 テキストファイルを新規作成して、以下の1行を書いて保存します。

 MsgBox "エイジョリアーーン!!"

このとき、拡張子を「.txt」ではなく「.vbs」にして下さい。

拡張子が表示されない人は、設定を変えて表示させるようにしておいたほうが いろんなトラブルが防げて一石が何鳥にもなります。(無限1up)
エクスプローラのメニューから[ツール] > [フォルダオプション] > [表示] > [詳細設定] > [登録されている拡張子は表示しない] を、OFFにして下さい。

ここでは仮に「hello.vbs」で保存したとします。 で、今作ったhello.vbsをダブルクリックしてみてください。どうですか、魂の叫びが表示されたかと思います。

では、超簡単解説。MsgBoxってのは名前の通り、メッセージボックスを表示する関数です。メッセージボックスってのはたった今、表示されたWindowのことです。 「つーか関数ってなんだよ」って人もいるかもしれませんね。 関数は超簡単に説明すると、「命令」です。この場合、

指定に従ってメッセージボックスを出して。出せよ、いや、出せって。

と、言う意味です。プログラムなのでコンピュータに命令する必要がある訳です。 MsbBox以外にもWSHの方で既に用意されている命令が沢山あります。これらの命令を組み合わせてプログラムを組んでいくことになります。既存のものだけでなく自分で命令(関数)を作ることもできますが、これは後ほど。

上記の関数の説明、「指定に従って」というところがありますね。「指定って何じゃい」と言うのがその後ろに続いている部分です。関数の引数と言います。 引数は関数の後に半角スペースを空けて指定します。この場合、

"エイジョリアーーン!!"

の部分がMsgBox関数の引数になります。 ダブルクォーテーション(")が前後についていますね。これは、

この中身は文字です。ホンマですって。なんだよ、調べるならしらべればいいじゃねーかよ!

と、言う意味です。ダブルクォーテーションで前後を囲まないとMsgBoxと同じ関数(もしくはその他の文字以外のもの)と勘違いしてしまうので必ずつける必要があります。

しかし、これではエイドリアンも誰に呼ばれてるのかが分からなくて不安な日々を過ごしかねません。もう少しソースに追記してみましょう。

 'メッセージボックスの表示
 MsgBox "エイジョリアーーン!!",vbOK,"貞夫より"

貞夫、誰

引数は命令によっては複数つけられる場合があります。 複数つける場合はカンマ(,)で区切ります。 MsgBoxの場合、3つの引数を指定することができ、2つ目はWindowの表示オプション、3つ目はWindowのタイトルを指定します。vbOKは「OKボタンを表示する」と言う指定です。 つ目の引数は指定されなかった場合、デフォルトでvbOKが指定されるようになっていますので、実際は省略しても結果は同じです。 又、1行目に追加されたいかにも注釈みたいな行は、そのものズバリ、コメント(注釈)です。シングルクォーテーション(')をプログラム内に記述すると、それ以降はコメントとして認識され、プログラムには全く影響を与えません。改行すると解除されます。 つまり、

シングルクォーテーションを書いたらその行のそれ以降の文字は無視される

と、言うことですね。
又、突然出てきたvbOKですが、これは定数と呼ばれるものです。vbOKは実際には数値で値は0です。数値に分かりやすいように名前をつけている。みたいな感じです。 定数の対となるものとして変数があります。コードを見たほうが早いでしょう。

 '日数 -> 時間変換
 lngDay = 3       '対象の日数
 hoursPerDay = 24 '1日の時間数
 
 MsgBox lngDay & "日は" & lngDay * hoursPerDay & "時間です。",,"貞夫より"

だから貞夫、ダレ

何となく分かりますよね?lngDay,hoursPerDayが変数です。変数ってのは計算過程にて値を入れておく箱みたいなものです。箱の中身は自由に変えられます。一方、定数は一度入れたら変更できない箱です。変わらないもの、むしろ、変わっては都合が悪いものを定数に設定したりします。上記サンプル、変わらないものが1つありますね。1日は必ず24時間です。修正してみましょう。

 Dim    lngDay                '変数宣言
 Const    HOURS_PER_DAY = 24    '定数宣言
 
 lngDay = 3       '対象の日数
 
 MsgBox "今ならダブルチャンス!!"
 lngDay = lngDay * 2    '設定日数を2倍に変更
 
 MsgBox lngDay & "日は" & lngDay * HOURS_PER_DAY & "時間です。",,"貞夫より"

定数を宣言するにはConstを使用します。 変数の宣言はしなくてもOKなのですが、実際はしたほうが後で見やすいです。 変数を宣言するにはDimを使用します。 定数の名前は全部大文字で_にて単語を区切るのが習慣になっています。

lngDayは変数なので、途中でダブルチャンスがあった場合も値を変更できます。 定数は最初のConstで設定された値以外設定できません。 vbOKはWSHで最初から暗黙的にConstされている定数と考えればいいでしょう。

「別に全部変数でいいじゃん」とか思う人もいるかもしれませんが、 それは背中にチャックがついていないからそんな事が言えるんです。(普通付いてない) 実行結果は変わりませんが、 定数を上手く利用することにより可読性を高める事ができますし、 バグの混入も防げます。定数に間違って代入しようとしてもエラーがでますから。

また、さっき説明し忘れましたが、第二引数が省略してあります。 省略する場合はそのままカンマを続ければ省略となります。 MsgBoxの場合、第二引数を省略すると、vbOKが指定されたことになります。

こんな感じで第一章終わり。簡単すぎたかな? 第3章くらいからいきなり飛ばしていくつもりなので、我慢して付いてきてね。

この記事は訳に立ちましたか?

選択肢 投票
はい 75  
いいえ 19  

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White