Visual Basic 6.0 入門講座 |
第2回 ボタンを作る
今回は、Windowsをやっているとよくみかけるボタンを作りましょう。
この上にある、こういうボタンです。そして、ボタンを押したら背景が赤くなるように、プログラムしてみます。ちなみに上のボタンは押しても何も起こりませんので安心してクリックしてみてください。
なお、VBでは、このボタンのことを「コマンドボタン」、もっと正確には「コマンドボタンコントロール」と呼びます。この講座でもこれからは「コマンドボタン」と呼ぶことにしますから。「コマンドボタン」と書いてあったら、このボタンを思い出してください。
1.コマンドボタンを配置する
それでは、VBを起動してください。前回同様「標準 EXE」を選択します。
コマンドボタンの配置はとても簡単です。しかし、今回は最初なので、画像を見ながらていねいに説明します。
まず、下の画像でツールボックスを確認してください。
左の方にあるやつですね。普通は全部で21個のアイコンが並んでいます。この中に「コマンドボタン」も含まれています。どのアイコンが何を意味しているか下に画像で示しておきますが、今回使うのはコマンドボタンだけですので、他のは特に気にしなくていいです。
では、コマンドボタンのアイコンをクリックしてください。クリックしたら、フォームのコマンドボタンを配置したいところをドラッグします。そうすると、コマンドボタンができましたね。この下の画像は今説明した手順を表しています。(白黒ですいません)。
できたら実行してみましょう。前回の何もないフォームが表示されるのと違い、今回はコマンドボタンも表示されます。クリックしても何も起こりません。まだプログラムしていないからです。これから、コマンドボタンを押したらフォームの色が赤になるようにプログラムしましょう。
2.コマンドボタンをプログラムする
では、コマンドボタンをクリックしたときの反応をプログラムしましょう。まず、配置したコマンドボタンをダブルクリックしてください。(もちろん。実行を終了してからですよ)。ダブルクリックすると画面が変わってコード編集画面になりましね。そして、そこには自動的にこう書かれているはずです。
Private Sub Command1_Click()
End Sub
これは、今コマンドボタンをダブルクリックした瞬間に自動的に生成されたコード(プログラム)で意味は「コマンドボタンをクリックしたら」です。
「コマンドボタンをクリックしたら」どうなるかまでは書かれていません。それはあなたがプログラムするのです。今回はフォームの背景を赤にするのですから。Private Sub Command1_Click() と End Sub の間に次のように書いてください。
Private Sub Command1_Click()
Form1.BackColor = vbRed
End Sub
「Form1.BackColor = vbRed」はかんたんに説明すると「フォームの背景色は 赤」という命令(設定)です。このようなキーワードも基本的な物は覚えることになりますが、始めたばかりに全部覚えようとしても大変です。でてきたものを確実に覚えておくようにしましょう。
さて、プログラムができたら実行してみましょう。コマンドボタンを押したらフォームの色が赤くなりましたね。うーん、そういえばWindowsのフォームってほとんど灰色ですから、なかなか変な感じですね。
ところで、中学生以上の方、英語が分かる方は想像できると思いますが、vbRed で赤くなるからには 青くするには vbBlue とすればよいのです。ためしに上のコード(プログラム)の vbRed のところを vbBlueにかえてみてください。青くなるでしょう? 他の色もできますよ。あなたは色の名前をいくつ英語で言えますか? ・・・なんて書くと英語が苦手な人は不安になるでしょう。大丈夫です。英語を使って色を指定する場合は たった16色しか指定できません。 でも数字を使って色を指定する方法もあって、その方法では1600万以上の色が指定できるのです。たとえば、赤は RGB(255,0,0) です。vbRedの代わりに、RGB(255,0,0)と書いても同じことになります。青はRGB(0,0,255)。みなさんも0〜255まで好きな数をいろいろ入れてみてください。色の使い方についての詳しい説明は 初級講座第1回 で解説しています。
3.コマンドボタンの説明
コマンドボタンをクリックしたときのプログラムの方法は以上で説明したとおりです。しかし、コマンドボタンに表示されている文字が「Command1」というのは気になります。コマンドボタンに表示されている文字を「色を変える」に変更しましょう。
まず、コマンドボタンを1回だけクリックしてください。そして、右のプロパティウィンドウを見てください。(どれがプロパティウィンドウかは一番上の画像で確認してください)。
プロパティウィンドウにはたくさんの項目が並んでいます。これらはすべてコマンドボタンの状態を表しています。ここに並んでいる数値や値を変更すると、コマンドボタンの状態も変化します。ただし、変化は目に見える変化とは限りません。「表示している文字の状態」はCaptionという項目で設定します。左の列からCaptionという項目を探して下さい。
Captionの右側には Command1 と書いてあるでしょう。これを変更して 色を変える にすればOKです。
かんたんですね。試しに実行してみると、ちゃんとコマンドボタンに表示されている文字が変化しています。その他の点は何も変わっていません。では、終了させてください。
Captionの他にどういったことが設定できるのでしょうか。何しろたくさんの項目がありますから今全部はとても説明できません。ここでは、Name について説明しましょう。 Nameという項目は実はプロパティウィンドウを探しても書いてありません。プロパティウィンドウに並んでいる項目の一番上にある オブジェクト名 というのがこの Name にあたります。
オブジェクト名とは名前のことです。今はコマンドボタンの話をしているのでコマンドボタンの名前のことです。コマンドボタンが1つしかないなら名前なんか気にする必要はありません。「コマンドボタン」と言っていれば十分です。しかし、コマンドボタンをいくつか使うプログラムとなると名前も重要になってきます。(ただし、自分で名前をつけなくてもコマンドボタンを配置すると、自動的に名前がつきます。自動的に付く名前は Command1 とか Command2 とかです)。
今回はコマンドボタンをクリックすると色が変わるのですからコマンドボタンの名前は「cmdIro」にしましょう。先頭にある「cmd」はコマンドボタンを表しています。ただし、別に単に「Iro」にしてもかまいません。
名前を変更するにはさっきCaptionを変更したのと同様に オブジェクト名の右側に表示されている Command1 というのを消して cmdIro にするだけです。
変更ができたら、実行してみてください。実行しても名前が変わっただけなので見かけは変わっていませんね。それに「名前」と「表示する文字」は別なので表示されている文字も変わりません。ところが、コマンドボタンをクリックしても何も起こりません!これはおどろきです。終了させて原因を探りましょう。
「コード編集画面」をよく見てみてください。さきほど下のようなコードを打ちましたね。
Private Sub Command1_Click()
Form1.BackColor = vbRed
End Sub
よくみると1行目に 「Command1」 と書いてある部分があります。ここが原因です。このPrivate Sub Command1_Click()は「Command1をクリックすると」と言う意味なので、名前が変わった今となっては永遠に実行されることのないプログラムとなってしまったのです。解決方法は2つあります。
1つ目は この Command1 の部分を cmdIro に変えることです。そうすると、コードの意味が「cmdIro をクリックしたら」という意味になりますから修正完了です。
2つ目は この3行はもう消してしまって、もう一度コマンドボタンをダブルクリックすることです。そうすると今度は、
Private Sub cmdIro_Click()
End Sub
と自動的に表示されますから。この間に Form1.BackColor = vbRed と打てば完成です。
試してみてください。
4.他のコントロール
今回の説明はここまでです。しかし、もう一度初めに戻ってみましょう。コマンドボタンを配置するときは左にあるツールボックスからコマンドボタンのアイコンをクリックしましたね。ところで、ツールボックスにはコマンドボタンの他にもいくつかのアイコンがあります。ためしに適当に選んでフォームに配置してみてください。Windowsでよく見かける物もありますよ。これらは「コントロール」、「標準コントロール」等と呼ばれ、VBのプログラムは基本的にこれらコントロールをうまく配置することによって行うのです。それぞれのコントロールの主な役割については 初級講座 で説明します。
それではまた会いましょう。