Visual Basic 6.0 初級講座 |
第9回 テキストボックス ラベル
今回はコントロール編の2回目で、テキストボックスとラベルの使い方を説明します。
このコントロールは主に文字を表示したり入力するときに使います。
1.文字を表示する
単純に文字を表示したいときは ラベルを使います。フォームにラベルを一つ配置して、Caption(読み方:Caption = キャプション)を変更すれば良いだけです。
コードから変更する場合は次のようにします。
Label1.Caption = "こんにちは" |
テキストボックスに表示する場合は Textプロパティ(読み方:Text = テキスト)に設定します。
Text1.Text = "こんばんは" |
文字の色、大きさ、形なども自由に設定できます。これらはプロパティウィンドウからあらかじめ変更しておくのがよいでしょうが、コードから変更することもできます。まずは、プロパティウィンドウから設定する方法を説明しましょう。
プロパティウィンドウとは、もう分かっていると思いますが、いつも右の方に表示されている、図2のウィンドウのことです。図2はラベルを選択したときに表示されるプロパティウィンドウです。(プロパティウィンドウの大きさなどは自由に変えられるので全く同じとは限りません)。
プロパティウィンドウからFont(読み方:Font = フォント)という項目を探してください。この項目を使って文字のスタイル、つまりフォントの設定をします。 Font をクリックすると図2のように右側に「...」と書かれた灰色の四角形が表示されるのでこれを押しましょう。押すと図1のウィンドウが表示されます。このウィンドウの説明は必要ないでしょう。ようするにフォント、サイズ、スタイル、文字飾りについて設定できると言うことです。
なお、この「...」ボタンは通称「3点ボタン」と呼ばれ、このボタンをクリックすると別の画面が表示されることを示しています。Font以外でもこの3点ボタンは登場します。
このフォントウィンドウでは文字の色は設定できません。色を変えるには、プロパティウィンドウのFontの下にあるForeColor(読み方:ForeColor = フォアカラー)を選択してください。ここで「パレット」をクリックするとよいでしょう。自分でやってみて確かめてください。
以上のようにプロパティウィンドウから設定する方法はとても簡単です。私もいつもこの方法で設定します。でもコードから設定したくなる場合もあるでしょう。たとえば、重要なメッセージを表示するときだけ文字の色を赤くしたいなど の場合です。そのためコードから変更する例も示しておきます。
Label1.Font.Size = 13 Label1.FontSize = 13 |
この2つのコードはどちらもフォント(文字)のサイズを13にします。逆に
MsgBox Label1.FontSize |
などとすれば、現在のフォント(文字)のサイズが取得できます(知ることができる)。
やや細かい話になりますが、フォント(文字)のサイズは全く自由に設定することはできません。上のコードを実行してから、フォント(文字)のサイズを調べてみてください。サイズが13ではなく 12.75 と表示されることでしょう(環境によっては違うかもしれません)。
色を変えるにはおなじみのRGB関数を使います。
Label1.ForeColor = RGB(100,255,200) |
もちろんRGB関数を使わないでする色の指定の方法も有効です。
2.自動的に大きさを調節する
今説明してきた例はどれも短い文章を表示させる例でした。長い文章を表示させようと思うとまた別の苦労があります。まず、ラベルやテキストボックスが小さすぎてすべての文章が表示できないということです。
ラベルにはこの点便利な機能があって、表示する文章に応じて自動的にサイズ調節を行うことができます。この機能を使うには AutoSizeプロパティ(読み方:AutoSize = オートサイズ)をTrueにします。
その方法はプロパティウィンドウから設定するのが簡単ですが、Label1.AutoSize = True のようにコードから指定することもできます。
テキストボックスにはこの機能はありません。
3.複数行での表示
次は、複数行の文章を表示させる方法を説明しましょう。これはラベル、テキストボックスのどちらでも使えます。しかし、その方法は異なります。
まず、テキストボックスに複数行を表示する方法ですが、こちらは簡単です。テキストボックスのMultiLineプロパティ(読み方:MultiLine = マルチライン)をTrueにするだけです。この操作はプロパティウィンドウからおこないます。コードから Text1.MultiLine = True のように入力するとエラーになります。このようにプロパティウィンドウからのみ設定できるプロパティもあるのです。
なお、ScrollBarsプロパティ(読み方:ScrollBars = スクロールバーズ)を設定すれば、必要に応じて自動的にスクロールバーも表示してくれます。まったく便利な機能です。
次はラベルに複数行表示する方法です。こちらはWordWrapプロパティ(読み方:WordWrap = ワードラップ)をTrueにすればよいのですが、これとともに、AutoSizeプロパティもTrueにしなくてはなりません。
以上をまとめると次の表のようになります。
コントロール | 機能 | プロパティ |
ラベル | 自動的にサイズを調節する | AutoSize |
複数行表示する | AutoSize, WordWrap | |
テキストボックス | 複数行表示する | MultiLine |
自動的にスクロールバーを表示する | ScrollBars |
これらのプロパティを必要に応じてTrueやFalseにすれば簡単に機能を追加できるわけです。
実際に複数行表示させてみましょう。次のようにコードを打ち込んでコマンドボタンをクリックするとテキストボックスに2行の表示がされます。もちろん、プログラムする前にコマンドボタンとテキストボックスを配置して置いてくださいね。それからテキストボックスのMultiLineプロパティもプロパティウィンドウからTrueにしておいてください。
Private Sub Command1_Click()
End Sub |
途中にでてくる vbNewLine(読み方:vbNewLine = ブイビーニューライン)は「改行」を表す記号だと思っておいてください。vbNewLineではなく、vbCrlf(読み方:vbCrlf = ブイビーシーアールエルエフ)と書いても全く同じです。
4.見かけを変える
ラベルやテキストボックスは見かけを変えることもできます。
関連するプロパティをまとめておきます。
Appearance (読み方:アピアランス) |
ラベルやテキストボックスを立体的に表示するか、平面的に表示するかを選択できます。ただし、立体的な表示はBorderStyleプロパティが 1 (実線)の時だけ有効です。 |
BackColor (読み方:バックカラー) |
ラベルやテキストボックスの背景の色を指定できます。もうおなじみでしょう。 |
BackStyle (読み方:バックスタイル) |
ラベルの背景を透明にする設定ができます、透明にすると後ろにあるものが透けて見えます。後ろに何もないとフォームの色が表示されます。 |
BorderStyle (読み方:ボーダースタイル) |
ラベルやテキストボックスの四角形を線で書くか、書かないかを指定できます。 このため、ラベルを表示して、 Appearance = 1 BackColor = vbWhite または白を選択する BorderStyle = 1 となるようにプロパティを調節すると、テキストボックスと全く同じ見かけになります。 |
5.ユーザーからの入力
名前を入力(インプット)して表示させるプログラムを考えてみましょう。そのためにはまず、名前を入力してもらわなければなりません。どのようにしたらよいでしょうか。
ふつう、ユーザー(そのプログラムを使う人)からの入力を受け付けるにはテキストボックスを使います。試しに何でもいいから一つテキストボックスを張り付けて何もコードを打たずに実行してみてください。
そうすると自由にテキストボックスに文字を入力することができますね?簡単なワープロの様でしょう。
では、入力された内容を知る(取得)するにはどうしたらよいでしょうか?これは表示の逆ですから次のようにします。
St = Text1.Text
これで St にはテキストボックスに入力された内容が記録されます。
では、入力された名前を表示するプログラムを書いてみましょう。
Private Sub Command1_Clich()
End Sub |
このプログラムは暗号による認証にも使えます。たとえば 暗号「ひらけごま」と入力した人にだけ特別なメッセージを表示するプログラムは次のようになります。
Private Sub Command1_Clich()
End Sub |
6.最後に
今回はラベルとテキストボックスを使って文字を表示する方法を中心に解説しましたが、文字を表示できるコントロールは他にもあります。文字を表示できるコントロールの多くはCaptionプロパティにアクセスすれば好きな文字を表示させられます。
たとえば、
Command1.Caption = "ハロー"
Form1.Caption = "ニーハオ"
とすれば、コマンドボタンの文字と、フォームの文字(一番上に表示されているタイトル)が変わります。
Captionプロパティで無理な場合はTextプロパティを使う場合もあります。