<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000--VBAの小屋>「イベント」に慣れる
   1 2 3 4 5



じゃ、せっかくですから、スライダーをなんかもう一工夫・・・。
スライダー、0から10まで1ずつ増えるようになってますよね。こういうのは何とかプロパティで調節できるみたいです。

その他のプロパティをみると、Max、Minっていうプロパティがあります。探してみてください。
じゃあ・・・Minを9、Maxを16くらいにしてみようかな・・・。


で、テキスト7の方、ちょっとサイズを大きめにして、「既定値」プロパティに、今日の日付を出す関数Date関数を入力してみましょう。

=date()

で、VBAのエディタの方ですが、

と、こんな感じでテキスト7のFontSizeっていうプロパティに、スライダーの値が入るように書き換えてみてください。
へへ。何をするか、だいたいわかりましたでしょう?

じゃ、フォームをいったん閉じましょう。保存しながら・・・。
で、改めて開きます。いったん閉じて開きなおさないと、多分Date関数が働いてくれないと思うんで・・・。

スライダを動かすことによって、今日の日付の文字の大きさが大きくなったり小さくなったりすれば、大成功なんですけど、どうでしょう??
もっと大きなフォントにしたい場合はどこを変えれば・・・Maxプロパティを変えればいけますよね。
まあ、フォントサイズを変えたりする処理が必要になるかどうかはわかりませんが、やろうと思えばいろいろつかえるってことで・・・。





同じようなイメージでスピンボタンを使うこともできます。
これは、MicrosoftFormsのSpinButtonというやつがおすすめです。

なんかちっこいのができました。



わたしのは、ActiveXコントロール11って名前になってます。なんか味気ないですねー。でもまあ、今日は練習だから、いいか。

で、なんか適当なテキストボックスを横っちょに作っておいてください。これは普通にツールボックスの中にある普通のテキストボックスを作ります。フォントサイズとか配置とか、お好みで整えてください。
スピンボタンを上下に動かしたら、テキスト12の中身が増えたり減ったりするようにしてみましょう。

VisualBasicのエディタのウィンドウの方から、メニューバー[ヘルプ]をみると、わたしの使ってるマシンだと、MicrosoftFormsのヘルプも多少見れるんですけど・・・皆さんが使ってる環境ではどうかな。

うひー。こんなトコに・・・ちょこっとだけ書いてありました。
えーと、右上のイベント、ってとこをクリックすると・・・。
ああ、あった!SpinDown、SpinUp、これかな???一覧から選ぶと、説明を読むことができます。



VBAエディタの、この部分・・・。
よくみると、左側がフォーム上にあるコントロールの一覧、右側がそのコントロールのイベント一覧、ってことになってます。
んじゃ、左側からさっき作ったスピンボタンの名前を、右側からSpinupイベントを選んでみましょう。

余分なのが出ちゃったら、消します。
と、Spindownのイベントも作ります。


動きますか???

これもスライダーと同じで、プロパティの中に若干調整できる部分があります。これをみると・・・わたしのは、最大値が100になってます。最小は0でした。
これをもっと増やしたりすれば、テキストボックスに表示できる値の範囲も広がるはずです。



じゃ、ちょっとばかりこれを活用してみたいなという場合・・・。そうですねぇ。
そばにラベルを作って、中になんか適当な文字を入力しておいてください。んでもって、「可視」プロパティを「いいえ」にしておきます。



で、こんな感じで・・・。テキスト12の値が50を超えたか超えないかで、ラベルを非表示にしたり表示させたりします。



フォームを保存しながらいったん閉じ、再度開いてテストしてみてください。
スピンボタンを動かすと・・・何が起こるかな???





ちょっとかわったイベントもあるんです。
だいたい、どのイベントも、マウスでクリックしたときとかフォームを閉じたときとかなんか入力したときとか・・・わたしたちが動作をしたときに動き始めますけども、ひとつだけ・・・。タイマーというイベントがあるんです。これは、フォーム全体のプロパティの中にあります。

タイマ時というところに何か処理を書いて、タイマ間隔というところに設定された時間間隔ごとにその処理を繰り返すんです。タイマ間隔の単位は、1/1000秒です。つまり1秒は1000ってことになりますね。0の時は何もしません。



ちょっと使ってみます?
じゃ、フォーム内に適当なテキストボックスをひとつ作っていただいて・・・。仮に名前を、テキスト15としますね。
で、上の、フォームの「タイマ時イベント」

これだけ。Timeというのは、今の時刻をいてくるTime関数です。

で、タイマ間隔を1000にするのを忘れずに・・・0のままじゃ動かないですからね。
1じゃダメですよ。別にダメって事はないですけど、1/1000秒おきにTime関数が答えを返してくることになるんで、ほとんど意味ないですよね。


と、こんな感じで・・・↑今の時刻を刻むと思うんですけど、いかがでしょう?
テキストボックスじゃなくて、ラベルでもいいですね。ラベルなら、データの入力をするためのコントロールじゃないから、フォームビューの状態なら基本的にカーソルも入らないし。

ラベルの場合は、ラベルの中の「標題」プロパティに代入することになるんで、
Me!ラベルxx.Caption = Time
でいけるかな。