超初心者向け VBプログラミング講座
第3章:基本事項をマスターする
3−1:「へぇ〜」ボタンを作ってみる
さて、前回は「あいさつプログラム」という、何の面白みもないプログラムを作ってみましたが、今回は、
2003年の流行語大賞にも輝いた、あの「へぇ〜」ボタンを作ってみようと思います。
とは言っても、「トリビアの泉」を御存知ない方には、何の事やら全く分からないと思いますので、まずは「へぇ〜」ボタンについての
解説をしてみようと思います。
このウィンドウの下の方にある「へぇ〜」ボタンを押すと、上の数字がどんどん増えていく。 ただ、それだけのプログラムです。 例えば、この状態で「へぇ〜」ボタンを押すと、数字は「17へぇ」になります。 ただし、番組のルール上、数字が20へぇを超えることはできません。 |
さて、プロパティの設定はもはや簡単にできると思いますので、基本的な解説は省略します。
ただし、上の「16」の部分(実はこれ、ラベルなんです)の、背景色や文字の色を変えるやりかたは、まだ説明していませんので、
これについて説明します。
赤い四角で囲んでいる部分の「BackColor」をクリックします。 そうすると、右側に▼が出てくると思いますので、それをクリックして下さい。 そうすると、下のような画面が出てくると思います。 |
そして、左図の青い矢印で指し示している「パレット」タブをクリックしてみて下さい。 すると、↓こんなのが表示されたと思います。 これを使って、ラベルの背景を好きな色に変えることができるのです。 ここでは、左下の黒色を選択しておきましょう。 |
すると、ラベルの背景が真っ黒になったと思います。
しかし、それでは肝心の文字が見えませんので、今度は文字の色を変えることにします。
そして、「ForeColor」プロパティをクリックし、さっきの要領で、今度は文字を 水色に変えておいて下さい。 そして後は、「Font」プロパティを使って、フォントサイズを36ポイントぐらいにして、 次に「Alignment」を「中央揃え」に設定しておきます。 そして、その右にもう1つ、「へぇ」と書いただけのウィンドウを設置し、 最後に、下の方に「へぇ〜」ボタンを設置すれば、これでデザイン関係は完了です。 なお、オブジェクトIDや、Label1のCaptionを変更する必要はありません。 ※ 注意 必ず、「数字のラベル → 『へぇ』のラベル → 『へぇ〜』ボタン」の順で設置して下さい。 そうしないと、正しく動作しません。 |
さて、これで初期設定は完了しました。
おそらく、下記のような画面になっていると思います。
「Label1へぇ」とかいう、変な表示になっていますが、これは後で直しますので、ここでは考えないことにします。
さて、外観はだいたい整ったのですが、実は「へぇ〜ボタン」を作るのに必要なものが、もう1つあります。
それは、いま「何へぇ」なのかを記憶させておく箱です。
まず、このプログラムは、「へぇ〜」を押すたびに、数字を1つずつ増やしていくプログラムなのですから、
ボタン(Command1)に、「このボタンが押されたら、『へぇ〜』の数字を1つ増やしなさい」という命令を書けば良い、
それは容易に想像できると思います。
その「『へぇ〜』の数字」を記録させておく場所、それが今から説明する、変数というものなのです。
もちろん、Label1.Caption=Label1.Caprion+1(「ラベル1のキャプションの値を1増やしなさい」という意味)と書いても良いのですが、
それでは長すぎますし、それに変数を知らないと、VBを使いこなすことはできませんので、ここで変数について解説します。
では、何も考えずに以下の通りに操作して下さい。
まず最初に、フォーム上の何もない部分(下図の青い矢印で指し示した部分)をダブルクリックします。
すると、下記のような画面が表示されると思います。
Private Sub Form_Load() End Sub |
これは、「このウィンドウを表示する際、一番最初に行う処理」という意味です。
つまりは、このプログラムを起動したとき、一番最初に「Form_Load()」が実行される、そんな感じで理解していただければ結構です。
まず、ここに以下のように記述します。
Dim Hee As Integer Private Sub Form_Load() Hee = 0 Label1.Caption = Hee End Sub |
例によって、赤字の部分は元から書かれている部分。そして、原則、全ての文字を半角で入力して下さい。
さて、さっそく最初っから、初めて見る構文があります。
Dim Hee As Integer |
これは、Dim文と言って、箱(変数)を用意する命令です。
このプログラムには、いま何へぇかを記録しておく箱が必要なので、あらかじめDim命令に、箱を作らせておこうというわけです。
Dim命令
変数(数字や文字を入れておくための箱)を作らせる命令。 |
つまり、上の「Dim Hee As
Integer」の前半を日本語に意訳すると、「『Hee』という名前の箱(変数)を作りなさい。」となります。
箱の名前は自由に決められるのですが、ここでは分かりやすいように『Hee』にしてあります。
では、後半の「As Integer」は何を意味しているのでしょうか? 実はこの部分では、変数(箱)の型を意味しています。
車に、ワゴン車、トラック、オートバイといった種類があるように、変数にも型があります。
変数には数字しか入れられない箱と、文字しか入れられない箱、文字も数字も入れられる箱、小数点が使える箱‥‥など、
色々な種類があるので、どのタイプの箱を作るのかを、Dim命令に指示しておく必要があるのです。
例えば、
Dim Hoge As String |
と入力すれば、「Hogeという文字型の箱を作りなさい」という意味になるので、文字しか入れられない変数「Hoge」が作られますし、
Dim Hoge As Double |
と入力すれば、小数点308ケタを扱える、凄い箱を作ることもできます。
まあ、「へぇ〜」ボタンに、小数点や文字は必要ないので、ここでは、数字しか入れられない数値型の箱を作ることにします。
Dim Hee As Integer |
ちなみに、このInteger型の箱には、-32768〜32767までの整数を入れることができます。
もっと性能の良いLongというタイプの箱もあるのですが、むやみに良い箱を作りすぎるとメモリの無駄になりますので、
極力、一番小さいデータ型を使った方が良いでしょう。
☆ 変数を宣言する場所
さて、上のプログラムを打ち込むときに、違和感を感じられた方がいるかもしれません。
なぜなら、
Dim Hee As Integer Private Sub Form_Load() Hee = 0 Label1.Caption = Hee End Sub |
いつもなら、赤で囲まれた部分に命令を書くのに、今回に限っては、その外側に書きました。
理由は簡単。変数の宣言は、一番初めにする必要があるからです、
例えば、
☆ 悪い例 Private Sub Form_Load() Dim Hee As Integer Hee = 0 Label1.Caption = Hee End Sub |
こんな風にしても良さそうな気がしますが、これだとその箱は、一番下のEnd
Subが実行された途端に消えてしまいます。
つまり、せっかく「へぇ〜」の数を覚えさせるために作った箱が、その威力を発揮する間もなく、破棄されてしまうのです。
赤で囲まれた部分には縄張りがあって、その縄張りの中で作られた箱を、国外に持ち出すことは許されないのです。
そんな事にならないように、
Dim Hee As Integer Private Sub Form_Load() Hee = 0 Label1.Caption = Hee End Sub |
Form_Loadの縄張りの外側に書いておけば、たとえEnd Subが実行されても、変数「Hee」は、問題なく国外に持ち出せます。
この辺は少しややこしいのですが、そのうち分かりますので、今はサラっと聞き流していただいて構いません。
☆ プログラムの続きを作る
さて、残りの部分を解説していきます。
Private Sub Form_Load() |
ここから「End Sub」で囲まれた部分は、全て「Form_Load」の縄張りです。
この縄張りのことをプロシージャと言います。
この赤で囲まれた部分には、「フォームが創造された時に実行する処理」を書きます。
Hee = 0 |
これは、変数「Hee」に、0を入れなさいという意味です。
VBでは、作られた変数(箱)には自動的に0などが入れられるのですが、他の言語ではそうはいきませんので、
これは必ず習慣づけておいて下さい。
ちなみに、「Hee=1」とすれば、変数Heeには「1」が、「Hee=365」と書けば、変数Heeには365が入れられます。
この動作を、代入と言います。
Label1.Caption = Hee |
お馴染み、Label1のCaptionをいじる命令ですが、ここでは変数を使っています。
つまり、この命令を実行すると、Label1のCaptionには、変数Heeの中身(つまりゼロ)が入れられます。
End Sub |
プロシージャ「Form_Load」の縄張りは、ここまでです。
☆ 実行する
それでは、プログラムを実行してみましょう。
さきほどは「Label1へぇ」とかいう風になっていたのが、ちゃんとした表示になっていると思います。
このようになれば成功です。
もしもエラーが出た場合は、大至急、コードが間違っていないか、そしてオブジェクトIDが変更されていないか、などを確認して下さい。
☆ ボタンを押したときの処理
それでは、いったんプログラムを終了して、今度はボタンを押したときの処理を追加してみましょう。
デザイン画面を表示させ、そして「へぇ〜」ボタンをダブルクリックします。
すると、例によって、こんな表示が出てくると思います。
Dim Hee As Integer Private Sub Command1_Click() End Sub Private Sub Form_Load() Hee = 0 Label1.Caption = Hee End Sub |
今度は、この青色で囲まれた縄張りに、「Command1ボタン(へぇ〜ボタン)」が押された時の処理を追加していきます。
以下のようにプログラムを書いて下さい。いつも通り、書くのは黒字の部分だけで結構です。
Dim Hee As Integer Private Sub Command1_Click() Hee = Hee + 1 Label1.Caption = Hee End Sub Private Sub Form_Load() ' (以下省略) |
これが、「『へぇ』を1つ増やす」という処理の全貌です。
1つづつ詳しく見ていきましょう。
Hee = Hee + 1 |
変数Heeの中身を、1増やせと言う意味です。
現在、変数Heeの中にはゼロが入っていますから、この文は
「Hee = 0 + 1」
と同じ意味になります。
そしてその結果、Heeの中身は1になります。
そして、もう一度「へぇ〜」ボタンが押されたら、今度は
「Hee = 1 + 1」
という意味になり、Heeの中身は2になります。そして以下、「Hee=2+1」「Hee=3+1」‥‥と続き、「へぇ」の数字はどんどん増えていくわけです。
Label1.Caption = Hee |
さきほどと同じ、Label1のCaptionをHeeの値に書き換える命令です。
そして用が済んだら、縄張りはこれで閉じられます。
End Sub |
そして、実行してみて下さい。
ボタンを押すたびに数字が増えていけば大成功です。
プログラムの日本語訳
Dim Hee As Integer |
日本語訳
あらかじめ、「Hee」という、Integer型の箱を用意しておきなさい。 |
以下、執筆中です‥‥
[次のページへ/目次に戻る]