<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97 VBAの森>ExcelでVBA


(2)

次に、同じ要領で、ネコの毛の色を入力できるような欄を作りましょう。
さっきみたいなテキストボックスに「黒」とか「白」とか入力してもいいんですけど、ここはひとつ、一覧から選ぶやり方を作ってみましょう。

どんな感じのがいいですかねぇ。
いろんなやり方がありますが、

よく見るのは、「コンボボックス」「リストボックス」「オプションボタン」といった感じでしょうかね。
みなさんも、印刷するときのダイアログボックスとか、書式を設定するダイアログボックスなんかでよく使うでしょう。

直接入力するより、ある程度の選択肢にした方が入力ミスも少なくなるでしょうし、こういうものをうまく活用するのも、VBAのポイントのひとつじゃないかと思います。

じゃあ・・・。今日は、少々難易度の高いオプションボタンというものを使ってみましょうか。
コンボボックスやリストボックスより少しばかり手間がかかりますが、「6パターンの毛の色からひとつを選ぶ」なんてケースには適してるんじゃないかなと思います。


まず、フォームのあいているところに「フレーム」という枠を作ります。
ツールボックスの中に「フレーム」ボタンがありますから、そいつをクリックしてから、フォーム内をそっとドラッグします。
適当な大きさの枠ができますので、ハンドルや枠線をドラッグしたりして大きさや位置を整えてみてください。

練習ですから適当でいいですよ。

で、この中に、オプションボタンというのを6つ作ります。

まずいっこめ。オプションボタンというのも、ツールボックスの中にメダマみたいなボタンがありますのですぐ分かりますよね。
こいつをクリックしてから、フレームの中を適当にドラッグします。

メダマと、Optionなんとかと書かれた見出しみたいなのと、いっしょにできますよね。
で、プロパティというところを見ましょう。
Captionという欄があるはずです。これがそのOptionなんとかという、このメダマの見出しラベルみたいな役目を果たすものなので、ここを「黒」と書き換えましょう。

メダマの右側の文字が、"黒"に変りました?これで、こいつをクリックしたら、このネコの毛が黒い色だ、ということになります。
というか、そうしようと思います。

同じ要領であと5つ、「白」「茶」「ぶち」「しま」「その他」というオプションボタンを作ります。



これだけ作ってると、うまく位置や大きさがあわなくなってきますよね。いらいらしません?でもがまんしてとりあえず全部作ってください。

6つ揃ったら、大きさや配置を揃えましょう。[Ctrl]キーを押しながら、オプションボタンをひとつずつ丁寧にクリックしてみてください。
複数のオプションボタンにハンドルが付きますよね。6つ全部選びます。

または、[Shift]キーを押したまま、「黒」と「その他」をクリックします。これは、間にあるオプションボタンを全部いっぺんに選択する方法です。



こういう操作は理屈じゃなくて感覚ですので、いろいろいじくって慣れちゃってくださいね。

んで、全部選んだら、メニューバーの[書式]→[同じサイズに揃える]や、[整列]などの機能を使って、オプションボタンの大きさや配置が揃うように調節します。

揃いました?ハンドルの出ているものに対しての機能ですので、まずは複数のオプションボタンを選択する方法をマスターしてくださいね。

これはなかなか便利な機能ですよ。
ちょっとずれてると、何となく気になりますもんね。ときどき利用して、フォームの中のテキストボックスやオプションボタンなどが揃うようにすると、見た目にもキレイで安定したフォームが出来上がると思います。


んじゃあ、ちょっと実行してみます?

また、フォーム内の何もないグレーのところをクリックして、フォーム自体を選択した状態で、メニューバーの[実行]→[Sub/ユーザーフォームの実行]を選びます。

どうです?それっぽいフォームになってきましたよね。毛の色をどれか適当にクリックしてみてください。
こうやってフレームの中にオプションボタンを作ると、選択できるのはフレーム内でどれかひとつになります。

でも、まだここで「黒」を選んでも、何も起こりません。「黒を選んだらC列に"黒"って入力される」っていう仕組みを、これからVBAで書かないといけないんですよね。



ボタン作っただけじゃ何も起こりませんよねぇ。
ま、これはあとで作っていきますので、こうご期待です。フォームを閉じるボタンで閉じましょう。VBEに戻りますよね。

あとは、コメントの入力をするための大き目のテキストボックスをひとつ作って、それに「コメント」というラベルを付けます。
ラベルの方は文字の色など、プロパティの中をいろいろ工夫してみてください。
まあ今日は練習ですから、少々イメージと違ってもよしとしてくださいね。



あ、そうそう、ネコ番号を付けるんですよね。これは、あとで自動的に番号をふる仕組みを考えようと思います。とりあえず表示枠だけ作っておくかな・・・。右下にでも。

フォームが小さくて入りきらないようでしたら、フォーム自体にもハンドルと呼ばれる点が出ますので(フォーム自体をクリックすると出るはず)、ハンドルをドラッグしてフォーム自体の大きさを広げてみましょう。


さあて。いちおうフォームらしきものができました。
次は、ここから入力することによって、ワークシート内に値が入るようにVBAの記述をしていきます。ここからが本番です。

みなさん、ふつうのワークシートにふつうに何か入力するときって、どうします?

表の一番下に新しいデータの入力をするって考えて、まちがいじゃないですよね。きっと。

どうやって一番下にデータの入力をするか。この動きを実現させましょうか。
アクティブセルがどこにあっても目的を達成するためにはどうしたらいいか・・・。
何も配慮をしないと、どのセルにネコの名前が入るかわかりません。
何でもそうですけどプログラムを作るということは、ありとあらゆるケースを考えて処理を組んでいかなければならないので、いろいろ想像力を働かせて頭の中でシュミレーションしましょう。

じゃあ、Excelのワークシートの方に移動して、ちょっと実験です。

適当にA列に数字か文字を入力してみてください。
いろいろいじってみると、[Ctrl]キーを押しながら[Home]キーを押すと、必ずアクティブセルはA1に移動します。
みなさんのパソコンではいかがでしょう。また、その後[Ctrl]キーを押しながら[↓]を押すと、その列のひとまとまりのデータ群の、一番最後のセルに移動します。

ちょっと試してみてください。どうでしょう。他にもこんな感じの動きをするキー操作、あると思いますが、こういうキー操作をうまくVBAに利用できないもんでしょうか。