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



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

【フォントのサイズを変更する】

んでは次に・・・テキストボックスに入力した数字をフォントサイズとして代入してみましょう。
まずお決まりの、フォントサイズのプロパティ名の調査から・・・必ずヘルプ見るようにしてくださいよ。

FontSizeというのがそれに当たるみたいですね。

では、

    Me!テキストボックス名.Fontsize = 16

で、テキストボックスのフォントサイズが16ptになるわけです。

ついでに、どっか別のテキストボックスの中に入力した数値を使いたい場合は、

   Me!テキストボックス名.Fontsize = Me!別のテキストボックス名

コマンドボタンのイベントとして、このどちらかの構文を書いてやればいけるはず。
テキストボックスになんか文字の入力をして、コマンドボタンをクリックしてみてください。
上記2パターンのうち、どっちでもいいですよ。

うーん、残念かな、テキストボックスの大きさは自動的には変わらないので、はじめからある程度の大きさにしておいたほうがいいかもしれないですね。

別のテキストボックスの値をフォントサイズとして代入する場合は、そちらの入力もお忘れなく。。。。

さてさて、後者の方(テキスト4に入力した数字をFontSizeに代入しているケース)の場合の話なんですが・・・。
こういう処理のとき、必ずといっていいほど「いたずら心」を起こす人、いますよね。

   「10000とか入れたら、どうなるのかな〜」

とかね。
(1pt=1/72インチ、1pt は 0.3514ミリメートル) 
まあ・・・さすがに最近のフォントはある程度「限界」が決められているとは思いますから、とんでもないことにはならないと思います。
でも、できればこんなでっかい無意味な数字をおもしろがって入力したりされないようにしたいもんですよね。。。
(MS-Accessのフォントサイズプロパティに代入できる値は、最大127ptみたいです。あんまり大きい数字を入れると、エラーになることはなりますので、あまり心配しなくてもよさそうですね・・・・Wordなんかで試すと、MSPゴシックフォントなどは、最大が1638ptで、1辺が60センチメートル四方ほどのフォントになりますね。でもこういうのはフォントの種類によって違うと思うんで、マジであんまり変ないたずら心は出さないほうが無難です。フリーズしちゃったりしてから文句いっても遅いし。たいてい、こういういたずらする奴って、とんでもないことになっちゃってから人のせいにするから。こういう輩がいるからまわりの空気がよどむんですよね。)

考え方は2つあります。
    ひとつは、前の章で挑戦した「If….Else」を使う方法。
    ひとつは、VBAとは関係ないんですが、テキストボックスに入力できる数値を限定する方法。

今日はVBAの講座なので、前者の、If・・・Elseを使った条件分岐をやってみましょうかね。
If…Thenを使う場合は、たとえばこんな感じかしら。

これなら、テキストボックスの中の数字の大きさによっては、フォントサイズ変更処理をすっ飛ばすようになりますもんね。
なんか、気の利いたメッセージボックスでも出すのなら、
こんな感じですかね。

VBAとは関係のないことになるんですが、ついでにお話しますと、テキストボックスへの入力制限を行う「入力規則プロパティ」というプロパティがあります。
このプロパティを活用しておけば、あらかじめ「このテキストボックスに入力できる値の上限下限など」を指定しておくことができるのです。
こうしたプロパティと、VBAによる処理をうまく組み合わせれば、うっかり入力ミスとかいたずら入力などによる「えらいこっちゃ」を未然に回避することができると思います。



いやなことを書くようになってしまいますけれども・・・。
VBAで何かしら処理を作成する、ということは、絶えず「人を疑う」ことにつながっていきます。
「10000とか入力するやつがいるといけないから」
「数字を入力してからコマンドボタンを押せっていくら説明しても、わけわかってないやつがいるから」
・・・もしも、まさか、に備えて、いろんな配慮をしていかなければなりません。
どれだけ気配りができるか、が、プログラミングの最大の争点になるんですが、これってなかなか、気がつかなかったり行き届かなかったりするもんなんですよね・・・。



さて、それでは・・・。
さっき後回しにした、「フォントの色をいろいろ変える」に挑戦してみましょうか。

たとえば、そうだな、テキストボックスをふたつ使ってやってみましょうか。
こんなふうに↓

片方のテキストボックスに「赤」っていう文字が入力されてたら、もう片方のテキストボックスの文字の色を赤くする、みたいな感じですね。
でも、わたしたちが「赤」って書いたから、字が赤くなるわけじゃないんですよ。
コンピュータは漢字なんか読めませんよ。

これも一種の「条件分岐」です。
2択なら、Ifでできますよね。じゃあ、3択4択の場合は・・・。
Ifをうまく組み合わせていけば、3択4択もできないことはないんですが、それならもっと使い勝手のいいやり方があります。
Select Caseというやつを使ってみましょう。

Select Caseとは、

Select Case ○○○
Case A
  こうするどうする
Case B
  どうするどうする
Case C
  こうするこうする
 ・
 ・
End Select

こう書くことによって、3択4択。。。を実現させてくれる下記方なんです。

いちおう今回は、色番号の一覧を作ってみました。が、何色が何番なのかは、必ず、ご自身で確認するようになさってくださいよ。

(1段目) (2段目) (3段目) (4段目) (5段目)
0 128 255 16711935 13408767
13209 26367 39423 52479 10079487
13107 32896 52377 65535 10092543
13056 32768 6723891 65280 13434828
6697728 8421376 13421619 16776960 16777164
8388608 16711680 16737843 16763904 16764057
10040115 10053222 8388736 6697881 16751052
3355443 8421504 9868950 12632256 16777215



わたしはこんなふうにコードを書いてみました。

という書き方をすることで、「○○○がAだったら、Bだったら、Cだったら・・・」と、たくさんの条件分岐が可能になります。
今回の場合ですと、○○○の部分がテキストボックスの名前になり、A、B、Cがそれぞれ「テキストボックスの中に入力された文字」にあたります。
たとえばこんな感じ。
ね、いろいろと変えられるでしょう。
最後の、Case Elseっていうのは「それ以外」っていう意味です。
中には、「犬」とか「猫」とかわけのわかんない文字を入力して面白がる奴がいるかもしれませんからね。。。。
(どんどん人間不信に陥る)