<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
  Ac2002--VBAの沼 > ソノイチ---ボタンをクリックしたらメッセージボックス



ソノイチ---ボタンをクリックしたらメッセージボックス

では、ここからは、ちょっとしたプロシージャを作りながら、段取りとエディタの使い方などについてお話します。
ゆっくり進めていきますんでよかったら、いっしょにやってみてください。
しょっぱなですんで、しつこいくらいゆっくりやっていきますよ。



練習用のフォームとコマンドボタンを作成

新規に何かしらデータベースを作成して、フォームを1個作ってください。
デザインビューを選んでOKボタンをクリックすれば、無地のフォームができると思います。

練習ですからね。これで↓オッケーです。このフォームを使って練習します。

このフォームに名前を付けて保存しましょう。

わたしはー[フォーム]って名前にしました。やる気あるのかって?ええ!そりゃあもう!!!



で、この、[フォーム]の中に、コマンドボタンを作ります。
コントロールウィザード機能がオンになってる(図中の黄緑のマークのボタンがオンになっている)方は、ウィザード画面が出ちゃいますけど、今回はウィザードは使わないのでキャンセルしといてください。

ボタンができましたですね。

コマンドボタンの名前って、最初適当なものがついてるんですよね。
ボタンの名前は、[コマンドxx](xxのところは、何かしら数字がつく)となります。わたしのは、[コマンド0]になりました。0は半角です。別に0じゃなくてもいいんですよ。ただ、なんて名前になったのか、は、確認しといてください。
いちおう確認なんですが、ボタンの名前とボタンの標題は、別です。標題ってのは、ボタンの表面の文字です。
コマンドボタンのプロパティ、確認しておいてくださいね。

今回は、変えずにこのまま進みますが、ボタンの標題と名前は、別々の設定なんだというとこ、おさらいしておいて下さい。
もし、ボタンの名前を変更したいのであれば、できるだけ早いタイミングにしときましょう。作ってすぐに変更するか、そのまま変更せずに使用するか、どちらかがいいですね。もちろん後から変更しても問題が起きないように、MS-Accessが調節してくれることはくれるんですけども、できれば、こういう機能に頼らず、自分が作ったもんの名前は(フォームとかコマンドボタンとか)、自分で意識しておくようにしましょう。特に、VBAでプロシージャ作成する場合は。





 ■コードを入力

では本題に戻りまして、このコマンドボタンをクリックしたときに、メッセージボックスが出るようにしてみましょう。

「なにを」「どうしたときに」「どうなる」←これは、VBAで何か処理を作るとき、必ずワンセットで考えます。

どうしても、「どうなる」にばかり目が行っちゃいがちなんですが、「なにを」「どうしたときに」がとっても重要なポイントになります。
その辺を意識しながら、では、まいりましょう。

「なにを」に当たるもの(今回はさっき作ったコマンドボタン)の「イベントプロパティ」欄を見ます。

なんかいろいろありますね。↑これらが、「どうしたときに」にあたります。

「クリック時」というのがあると思いますので、ここをクリックします。
すると、右端に、.小さいボタンが出てきますね。

  既に作成済みのマクロとか、プロシージャを選びたいときは ▼ボタンでリスト表示
  まだ特にマクロとかプロシージャとか作ってなくて、これから作ろうとしているときは、 …ボタン

どっちかを選ぶんですが、今日はこれから新しくプロシージャを作成するので、…ボタンのほうをクリックします。

←こっち

すると、さあ、3択問題・・・・ではないんですが、ここで「コードビルダ」を選びます。

そうすると別にウィンドウが開いて、「Visual Basic Editor」という画面が出てくると思います。
VBEと呼ばれる、VBA専用のエディタです。
エディタっていうとなんか堅苦しいですが、要は、ソースを入力/作成するための画面、ってところです。

もしかしたら、まったく↑これと同じ状態ではないかもしれないですが、左の上のほうに、

   Private Sub コマンド0_Click()

   End Sub

って、2行、ありますよね。そこんとこに注目してください。
ここに、「コマンドボタンをクリックしたらメッセージボックスが出るようなプロシージャ」の基になるソースを入力するのです。



で、いくつか「お約束」があるので、以下にことは「そういうもんだ」と思って見てみてください。
プロシージャの開始と終了は、わざわざ「ここから始まりです」「ここで終わりです」と一言断らないとならないルールになっています。

  Private Sub コマンド0_Click() ←これが、「始まりです」

  End Sub  ←これが、「終わりです」。必ず「始まりです」とワンセットです。

コマンドボタンのイベントプロパティ:クリック時→コードビルダとたどってきたので、このプロシージャは「このフォーム内だけの専用プロシージャ」ということになります。そんなもろもろの状況を含めて、「ここから始まりです」と「ここで終わりです」の2つの命令は、MS-Accessが気を利かして書いておいてくれています。なので、わたしたちは、この間に、「メッセージボックスを出せ」という命令だけ書けばよいのです。

じゃあこんなくどくど説明するなって?ああ、まあ、そ、そうですね・・・。

んでは、なんだかお話が長くなっちまいましたが、いよいよ「メッセージボックスを出す」という命令を作ります。
まあどっちかっていうと今回は、このVBEの画面を出すところまでの段取りをお話したかったので、メッセージボックス出す処理なんてのはオマケの例題なんですけど、せっかくですからやってみてください。メッセージボックス自体は、いろんなところで使う機会も出てくると思いますしね。
まず、msgboxと入力します。

次に、半角スペースをひとつあけます。

なんか、わけのわかんないポップアップが出ますね。なんでしょう???
これはですね。msgboxっていうのは、MsgBox関数っていう、MS-Accessの中にあらかじめ用意されている関数なんです。
このVBEでは、関数を入力するとき、こうやってお助け表示がチラッと出るようになってるんです。
このポップアップの見方などは、別のコーナーでお話します。

では、今回はこんな風に入力してみてください。

入力が終わったら、カーソルをどこか別の行に動かしてみましょうか。
Enterキーを押してもいいんですが、「改行」になるので、下が一行あきます。
あいたらつめればいいんですけど、まあ、入力中にあんまりやたらEnterキーを押さない方が、面倒なことは少ないかもしれません。
このVBEってやつは。

で、msgboxと入力したところなんですが、MとBが大文字になります。

これで、正しくMsgBox関数が入力できたことになります。スペルが間違ってたら、小文字のままですよ。

メッセージボックスに表示させたいメッセージは、半角のダブルコーテーションで囲んで入力します。
ダブルコーテーションで囲むのにもちゃんと意味があるので、これも徐々にお話していきますね。

[フォーム]の[コマンドxx]をクリックしたときに、メッセージボックスを出すプロシージャが、これで完成しました。





■コンパイル

VBAの場合は、VBEに入力後、実際にこのプロシージャが実行される前に、自動的にコンパイルされます。だから、私たちがわざわざコンパイルする必要はないんです。が、しかし!!!コンパイルすると、スペルミスとか、イージーな間違いを見つけ出すこともできるので、ぜひとも、ソースの入力が終わったら、コンパイルするように癖つけとくといいかもしれません。
コンパイルするためには、メニューバーの[デバッグ]→[xxxのコンパイル](xxxのところは、MDBファイルの名前)をクリックします。

今回は何も起きないときは、スペルミスとか、これはいくらなんでもおかしいだろ、というエラー個所がない、ということになります。
なんかまずいところが合った場合は、「コンパイルエラー」とか出ますので、エラーになってるところをチェックするわけです。
この手順も、今のうちにおさえておいたほうがいいかもしれないですね。





■テスト

じゃあ、VBEのウィンドウの左上のツールボタンをクリックして、MS-Accessのウィンドウに戻ります。
タスクバーで切り替えてもいいんですけど、まあ、左上のこのボタンクリックするとウィンドウが切り替わりますので、これでもいいんじゃないかと思います。

フォームを保存し、一旦閉じましょうか。別にいちいち閉じなくてもいいんですが、気持ちを切り替えるといいますか、雰囲気掴みやすいと思いますんで。
で、改めてフォームを開きまして、ボタンをクリック!

すると???

え?なめんなよ?って?
そんなー怒んないでくださいよ。メッセージボックス、出たでしょう???
これがすべての基本なんですから。。。。
どんな複雑なプロシージャだって、骨組みはコレですよ。コレ。
後は、Private Sub(またはPublic) と End Sub の間に、どういう処理を書いていくか、ってところを、どんどん応用して考えていけばよいわけです。



ポイントは、
  「なにを」「どうしたときに」「どうなる」 の3つをワンセットにして考えること。
  それにあわせた「作りはじめ方」をすること(コマンドボタンのクリック時イベントプロパティからコードビルダを起動して・・・とか)
この2点ですね。

タスクバー(画面の一番下ですよ、下)のボタンで、ウィンドウを切り替えることができます。
(VBEのウィンドウを閉じてなければ)

例えば表示されるメッセージを変えてみようとかいうときは、またVBEを表示させて、手直しして、コンパイルしてみて、MS-Accessのフォームのウィンドウに戻って、ボタンクリックして・・・と、これを繰り返しながら、ひとつのプロシージャを完成させていくのです。

こういう段取りみたいなのは、「覚える」のではなくて、自然に身に付けていくもんだと思います。
あまり難しく考えず、徐々に慣れていきましょうね。繰り返しいろんなプロシージャ作っていれば、すぐ慣れますよ。ホントに。