<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
  Ac2002--VBAの沼 > 「プロパティ」を操作する
   1 2



「プロパティ」を操作する

今回は、プロパティの操作をするプロシージャに挑戦してみようと思います。
フォームやレポート上で様々な処理を行う際、これが使いこなせるようになると結構便利だと思うんです。
基本をバッチリ理解してどんどん応用してみてください。



フォームには、いろんなプロパティがいっぱいありますよね。

フォーム全体のプロパティもあるし、テキストボックスとかコマンドボタンがあればそれにもそれぞれプロパティがあります。
これらのプロパティも、ひとつひとつ独立した「存在」なんですよ。

     フォーム名!コントロール名.プロパティ名

で、特定のプロパティを指差すことになります。
フォームそのもののプロパティをいじりたい場合は、

     フォーム名.プロパティ名

となります。
プロパティ名の前は半角のドットです。
これはいちおう、書き方のお約束なので、こういうもんだと思って覚えてしまってください。

で、今回のプロシージャの趣旨なんですが・・・。
プロパティの値というのは、フォームを作るときにフォームのデザインビューで変えたりしますよね。
これと同じことをやるコードを書いてみようかな、というわけです。
けっこう使えると思うんで、簡単な例をいくつかこなしながら、仕組みを理解してってください。



【文字の色や背景色を変える】

これが一番結果がはっきりわかってわかりやすいかしら。
テキストボックスの書式プロパティ欄に、「前景色」「背景色」っていう欄がありますよね。普通はここに数字が入ってます。
この数字が、色を表す「番号」なんです。この数字を変えれば、テキストボックスの背景色や文字色が変わるんです。
じゃあ、コマンドボタンをクリックしたら、テキストボックスの中の文字の色を赤にしてみましょう。

まずは事前調査です。
テキストボックスの場合、「文字の色」に当たるのが「前景色」プロパティなので、このプロパティをVBAで書くとどうなるのか、ということを調べます。
「前景色」のところにカーソルを置いて、F1キーを押しましょう。

すると、ヘルプが出てくると思います。
上のほうを見てみると・・・ForeColorって書いてありますよね。
これが、「前景色プロパティ」をVBAで書いた場合の書き方なんです。つまり、

    Me!テキストボックス名.ForeColor = 色番号

と書けば、文字色を変更することができるわけなんです。
こういうのもね、「値の代入」なんですよ。プロパティに値の代入をしているわけです。

次に、「赤」が何番なのか、番号を調べないといけないですね。
これは、ヘルプを見るより、実際に変えてみたほうが早いかもしれないです。ちょっと調べてみましょう。
テキストボックスの前景色を、実際に変えてみます。
右端のビルドボタンをクリックすると・・・。

色を変えることができますよね。赤色に変えてみましょう。

すると、テキストボックスの文字の色が赤くなり、プロパティに 255 という数字が現われたと思います。

つまり逆に言うと、255ってすれば、赤い色になるってことです。
確認が取れたら、背景色を 0 に戻しておいて下さい。 0は、黒い色を表します。

そんなわけで、構文としては、

   Me!テキストボックス名.ForeColor = 255

これでいけるはず。
あとは、「いつ」「どうしたら」に当たる部分を考えればいいわけですよね。

一番きっかけがつかみやすいので、当初の予定通りコマンドボタンをクリックしたときにしましょう。
なんか適当なコマンドボタンを作って、そのコマンドボタンのクリック時のイベントでテストしましょう。
VBEのウィンドウが開くところまで、自力でがんばって作業を進めてください。

多分、テキストボックス名の後にドットを入力すると、下のようなお助け表示になると思います。

プロパティ名などの一覧がプルダウンメニューとなって現われるんです。
この中から探してもいいんですが、今回はプロパティ名がわかっているので、直接入力しちゃってください。
これで入力完了↓です。

んでは、いちおうコンパイルしてみて、保存をして・・・一度フォームを閉じて、一息入れてください。

再度フォームを開きます。
テキストボックスに何か好きな文字を入力しておいてください。

最初は、黒い文字になってると思います。
え?赤い?あーもう。さっきプロパティを元に戻しませんでしたね???実験にならんじゃないですか・・・。
そういう人はちょっと待っててください。
文字が黒かった人は、コマンドボタンをクリックすれば赤くなりますよね。



ここまでくると、「赤にしたり青にしたり、いろいろ切り替えるにはどうしたら???」って思いつく人もいるかもしれませんね。
もちろんできますよ。
でも、それは後で挑戦しましょう。
難しいことではないんですが、先に、他のプロパティについてもお話したいなあなんて思いますので・・・。

ForeColorの色を変える構文が理解できれば、他のプロパティ変更処理についてもおんなじようなものなので、もう問題はないと思います。
いろいろ例題を挙げてみますので、挑戦してみてください。



【ラベルのキャプションを変える】

ラベルって、皆さん無意識に使ってる場合が多いかもしれませんね。
ウィザードでフォームを作る場合なんて、わざわざコントロールを追加作成することなんてほとんどなかったりしますもんね。
でも、フォームやレポート上になんかしら説明文とかを載せたいときとか、ラベルをわざわざ新規に作ることもありますですよ。

じゃ、やってみましょうか。
ラベルを作ります。

何も文字を入力しない状態だと消えちゃうんで、スペースキーを一回押して空白を入れといてください。
忘れないうちにラベルの名前を確認しておきましょう。

ラベルの中に入力した文字というのは、「標題」というプロパティに指定されている文字列です。
標題は今、空っぽみたいに見えますが、実際にはスペースがひとつ入ってるはずですね。
この標題プロパティに何かしら「値の代入」をしてやればいいわけです。
標題プロパティのところにカーソルを置いて、F1キーを押してプロパティ名を確認してみてください。
確認してくださいっ。

Captionですかね。
ということは、

   Me!ラベル名.Caption = “鼻血ブー”

とやれば、フォーム上に鼻血ブーという文字列が浮かび上がるのです。
なんで””で囲んでいるか、は・・・皆さんだいたい理解なさってますよね。

では、この構文を、コマンドボタンのクリック時のイベントに書きましょう。
新しくコマンドボタン作ってもいいし、さっき色を変更するときに使ったボタンのプロシージャを変えてもいいですよ。
どうでしょう。
文字が、出てきます?