Visual Basic 6.0 初級講座
VB6対応

 

Visual Basic 中学校 > VB6 初級講座 >

第1回  色をあやつる

 

初級編第1回の今回は、VBでの「色の指定」について説明します。なお、ここに書かれている内容が難しすぎると感じる人は入門編からご覧下さい。

この回の要約

・色を指定するにはRGB関数を使う。

・背景色を変更するにはBackColorプロパティを使う。

・プロパティウィンドウで色を指定すると便利。

・VB定数や番号で色を指定する方法もある。

 

1.とにかく色をつける

 

では、さっそく色を使ってみましょう。さしあたってはフォームの背景に何か色をつけましょう。

コマンドボタンを1つ配置してください。コマンドボタンのアイコンがわからない方は下の画像を参考にしてください。

配置したらコマンドボタンをダブルクリックして次のようにプログラミングしてください。

VB6対応

Private Sub Command1_Click()

Form1.BackColor = 1523

End Sub

Form1.BackColor = 1523 とは、「フォーム(Form1)の背景色を1523番の色にしなさい。」という命令です。さあ、1523番の色とは何色のことでしょうか。実行して確かめてみてください。赤っぽい色になりましたね。このようにしてVBでは番号で色を指定することができます。

しかし、じゃあ青は何番でしょうか? 緑は? そもそもこの番号は何番まであるのか?

実を言うとこの方法でも色は指定できますが、あまりよいやり方ではありません。何番が何色だかわかりにくいし、色は全部で60000色以上もあるのです。昔のパソコンは8色しか色がなかったのでこれでもよかったのですが・・・。(最近のパソコンが本気になれば、16700000色近い色が出せるらしい)。

 

2.色をまぜる

 

色の指定の方法で一番よく使うのは RGB関数 と言う物です。「関数」と言うとやになる人もいるかも知れませんがとてもかんたんで、おもしろい関数です。

次のようにプログラムを書きかえてください。

VB6対応

Private Sub Command1_Click()

Form1.BackColor = RGB(255, 100, 80 )

End Sub

実行してコマンドボタンを押すとオレンジっぽい色になります。つまり、RGB ( 255 , 100 , 80 ) とはこの色を表しているわけです。

もう少し詳しく説明しましょう。RGB関数は色を混ぜる関数です。後ろに続く3つの数字は どのくらい色を混ぜるのかを表しています。先頭から 赤 、 緑 、 青 を意味しています。

つまり、RGB ( 255 , 100 , 80 ) は 赤255、緑100、青80 を混ぜてできる色 と言う意味になります。こんなに簡単に色を混ぜられておもしろいでしょう。もはやパレットの上で絵の具をこねなくても色が作れるのです。でも、このRGB関数は絵の具ではなく「光」を混ぜているので、絵の具とは少し違う部分もあります。いろいろ数字を変えて楽しんでみてください。

数字は0〜255の範囲で指定します。256以上を指定した場合は255と見なされます。一番大きいまぜかたはRGB(255,255,255)で、これは白になります。RGB(0,0,0)は黒です。

 

3.楽をする

 

最初の数字だけで指定する方法に比べてRGB関数で指定する方法は分かりやすいし楽しい物です。では、RGB関数で赤はどうやればいいかわかりますか? RGB(255、0、0)とするのです。

このようにRGB関数を使えば必要な色を作れますが、もうちょっと楽をして指定する方法もあります。たとえば、背景を赤くしたいなら

Form1.BackColor = 赤

のように指定したいでしょう。もちろん上の例は間違い、エラーになります。しかし英語を使えば大丈夫な物もあります。

VB6対応


Form1.BackColor = vbRed
 

Red(レッド)は英語で赤という意味で、このコードはエラーになりません。ちゃんと背景が赤くなります。

では、vbRed について説明しましょう。最初に vb とついているキーワードは「組み込み定数」または「VB定数」と呼ばれます。この場合は色を表すので「カラー定数」ということもあります。単に Red とするとエラーになりますが、VB定数として vbRed とすれば認識されます。

ただし、このVB定数で色を指定する場合は、たった8色しか指定できません。英語で色の名前が書ける人は代表的な色を試してみてください。青や黒、緑・・・さて、あと何色が用意されているでしょう。

 

4.プロパティウィンドウを使う

 

プログラムの途中で色を変えたりするんでなければプロパティウィンドウから色を設定すると便利です。プロパティウィンドウを使うのですからこの方法はデザイン時(実行中じゃないとき)に限られます。

プロパティウィンドウの使い方はここでは省略します(プロパティウィンドウの画像を見る)。プロパティウィンドウから直接 BackColorプロパティを操作するという物です。やってみてください。

 

5.色を指定できる物

 

色の指定の仕方は以上でだいたい終わりです。そこで、VBでは、フォームの背景の他にどんなところの色が設定できるかをちょっとだけ説明しましょう。ここの説明ではいろいろでてきますが、別に今全部覚える必要はありません。

まず、背景色です。背景色を設定するには今まで説明していたように BackColorプロパティを使います。このプロパティは多くのコントロールで使用できます。実はコマンドボタンにもBackColorプロパティは存在するので、ボタンに色を付けることもできますが、この場合はあらかじめプロパティウィンドウで Styleプロパティという物を 1 に設定しておく必要があります。Styleプロパティは標準では 0 になっているので確認してみてください。

次に、前景色です。前景色とは聞き慣れない言葉ですが、文字の色や、表示するグラフィックの色のことです。これらは ForeColorプロパティで設定します。ただし、前景色を設定できないコントロールも結構あります。

だいたい以上ですが細かいことを言えばまだいろいろあります。たとえば、塗りつぶしの色FillColorや、境界色BorderColor。それと逆に色を変えられない物も多数あります。

 

6.最後に

 

今回説明したことを覚えていれば、色を指定するシーンでほぼ完璧に対応できるはずです。私が一番よく使うのはRGB関数ですね。

それから、ここで説明した方法の他にもまだまだ色を指定する方法はあります。画像処理プログラムを作ろうと思うともっともっと色について勉強ければならないでしょう。それでは、次回お楽しみに。

今回の新出語

新出語 読み方 説明
Private プライベート 現在の段階では無視すること。これをつけると外部のモジュールからアクセスできなくなる。
Sub サブ 現在の段階では無視すること。独立したサブプロシージャの宣言。
End Sub エンドサブ 現在の段階では無視すること。プロシージャの末端をあらわす。
BackColor バックカラー 背景色をあらわすプロパティ。
RGB アールジービー 色をまぜる関数。
vbRed ブイビーレッド 赤い色を表す定数。

■表2:今回新しく登場した言葉

 

おまけ、

下の3つのテキストボックスは左から RGB関数の 3つの要素に対応しています。

テキストボックスに何か数字を入れて、「RGBで色を表示」ボタンをクリックしてみてください。

なお、VBScriptで作られているので、ブラウザによっては何も起こりません。