Lesson6(コンボボックス)今回はコンボボックスの使い方を勉強しましょう。初めに新しいユーザーフォームを
挿入して下さい。そして、ユーザーフォームの上にラベル2つとコンボボックスと
イメージを配置して下さい。今回はコンボボックスの他にイメージも使ってみます。
配置はこんな感じにして下さい。ラベル1 ラベル2
コンボボックス イメージ
(一行表示の大きさで) (読み込むイメージの大きさで)
![]()
画像を表示させるので、画像を何か準備して下さい。コンボボックスで指定した
画像をイメージコントロールに表示させますので、人物の顔4,5種類とか、
魚の画像を4,5種類とか、何でも良いですから、4,5種類の画像を準備してみて
下さい。僕は自分のホームページに使った帯の柄画像を5種類用意しました。
サイズは小さ目の方が良いでしょう。適当な画像がなければ、アクセサリからペイント
を開けて、100×100サイズ程度の小さな画像を何か5種類ほど作ってみて
下さい。僕が使う画像は左から順に、obi0.gif, obi1.gif, obi2.gif, obi3.gif, obi4.gif です。
これは僕のホームページ(htp://www.kikimimi.ne.jp/www/sortie/)の着物のページで
使っている画像です。
![]()
![]()
![]()
![]()
![]()
ラベル1にはコンボボックスに表示させる画像の属性を書きます。僕の場合は
「柄選択」です。ラベル2は「画像」とでも書いて下さい。コンボボックスの中を
Wクリックするか、プロジェクトウインドウのコードの表示アイコンをクリックして
コード画面にして下さい。そして、コードをこう書いて下さい。
![]()
コンボボックスのクリックプロシージャはイメージコントロールに画像を表示させる
ことが目的です。LoadPicture関数で画像を呼び出しますが、使い方は、Image1.Picture = LoadPicture("パス名\ファイル名")
となります。みつりんのMS-DOS講座がここにも役立ちますね。僕の場合はCドライブの
My Documentsフォルダに入っているobi0.gif,obi1.gif,・・,obi4.gifという名の5種類
のGIF画像を使用します。使える画像の種類は、あと jpg、bmpが使えます。この例ではLoadPicture("c:\My Documents\obi" & ComboBox1.ListIndex & ".gif")
と、文字の連結子&を使って、実際のパス名とコンボボックスで選ばれる順番と、実際の
画像の拡張子名を全部連結させて使ってます。(注意)ここの表示例では便宜上、
LoadPicture("c:\My Documents\obi" _
& ComboBox1.ListIndex & ".gif")となってますが、obiの後の半角スペース+アンダースコアはステートメントが一行で
収まらないときの処理で、次の行とは1行であることを示すものです。みなさんは、
1行で書いて下さい。ComboBox1.ListIndex
で、コンボボックスの何番目を選んだかの番号が取り出されます。つまりこの書き方で
コンボボックスの最初のリストを選ぶと、c:\My Documents\obi0.gif
と書いたことと同じになります。ですから、用意する画像の名前をtest0.jpg,test1.jpg
・・・,test4.jpgとして、c:\usr\imageフォルダにあるとしますと、LoadPicture("c:\usr\image\test" & ComboBox1.ListIndex & ".jpg")
と書くことになります。
次にユーザーフォームのイニシャライズプロシージャにはImage(0)~(4)の後に
画像を示す言葉が書かれています。これが個人の顔画像を扱うなら、ここは各人の
名前になるでしょうし、ご自慢のつり上げた魚の画像なら、Image(0) = "神戸港の鰺(98/5/6)"
Image(1) = "明石の鯛(98/12/15)"
・・・の様に書いていくと趣味の画像の整理が出来そうですね。使う画像は何種類でもOK
です。数を増やす場合は、最初の宣言文Dim Image(4) As String
のImage(4)の数字を増やして下さい。このImage()という書き方は、配列と呼ばれる
もので、実際にはImage(0),・・・,Image(4)と5種類の変数があるんですが、それを
まとめて表現したものです。配列は非常に大事な考え方で、どんなプログラム言語にも
欠かせない重要なものです。それでは実行してみましょう。
![]()
今回は初めて画像を扱いますし、ファイルも呼び出すので、少し難しいかも知れま
せんが、出来上がりはこれまでとは違ったおもしろいプログラムになります。
頑張ってやってみて下さい。