エディタに慣れよう!(その1) |
|
まずはイベントとエディタに慣れることから始めましょう。 |
テーブルやクエリを扱わない簡単な作業のなかで少しずつ慣れていいきましょう。 |
|
適当な名前のデータベースを新規作成します。 |
フォームも新規に作成します。空っぽでいいです。 |
そしてフォーム上にコマンドボタンとテキストボタンを配置し、コマンドボタンのプロパティを表示してください。 |
|
|
それでは、「コマンドボタンをクリックしたらメッセージボックスが出てくる」という処理を作ることにします。 |
|
コマンドボタンのプロパティのイベントの「クリック時」をクリックして下さい。 |
[ビルド]ボタンが出てきたらクリックしましょう。ビルダの選択画面になりますので、「コードビルダ」を選びましょう。 |
そうすると下記のような画面が出ますね。これは「Visual
Basic Editor」といって、Access2000でプログラムを作成する時に使用する環境です。 |
 |
●コードウィンドウ(上図右) |
プログラムを編集するためのウィンドウです。VBの文法に従って処理を記述していきます。 |
●プロジェクトエクスプローラ(上図左上) |
作成中のデータベースに含まれるすべてのモジュールを表示します。 |
●プロパティウィンドウ(上図左下) |
選択中のオブジェクトに設定できるプロパティの一覧が表示されます。 |
●イミディエイトウィンドウ(上図では非表示。後で使用します。) |
プログラムのデバック用のウィンドウです。作成したプログラムを1行ずつ実行したり、変数の値を確認したりすることができます。 |
各ウィンドウの詳細については、ヘルプや参考書を参照してください。今回は主にコードウィンドウを使います。 |
|
コードウィンドウのコマンド0(オブジェクト)のClickイベントの箇所(Private
SubとEnd Subの間)に入力してプログラムを作成していきます。 |
Private Sub コマンド0_Click() |
-ここに処理を記述します- |
End Sub |
htmlにしろ何にしろ、言語というのは決まりを守って書かなければ、コンピュータは認識してくれません。 |
それをわかったうえで、何かエラーが出ても、根気よくミスをチェックしていけばきっとすぐに慣れると思います。 |
|
「メッセージボックスを出す」という処理には「MSGBOX関数」という関数を使います。これは「組み込み関数」といって、VBAであらかじめ用意されている関数で、書き方が決まっています。 |
|
そして半角でスペースを一つ開けます。 |
|
すると何か出てきましたね。 |
これはエディタが「MSGBOX関数」を認識し、ヒントを出してくれたのです。 |
|
今はとりあえず、半角で「1」と入力してみましょう。 |
|
カーソルを下に下げるとMとBが大文字になりますね。 |
これもエディタが関数を認識してくれた証拠です(自動構文チェック)。もし小文字のままならスペルをチェックして下さい。 |
|
それではフォームのほうに戻って「フォームビュー」に切り替えてコマンドボタンをクリックしてみましょう。 |
 |
→ |
こういうメッセージボックスが出ましたか?

|
|
慣れれば簡単ですよね。一度保存しておきましょう。 |
|
さて、今度はエディタのウィンドウに戻って、メッセージを変えてみましょう。 |
ちなみにこのエディタはそのままでは日本語を認識してくれません。 |
ではどうするかというと "" (ダブルクォテーション)で囲ってあげればいいのです。 |
Private Sub コマンド0_Click()
MsgBox "あいうえお"
End Sub
|
できました。

|
|
|
さて、テキストボックスのほうにも入力しましょう。フォームのテキストボックスのプロパティを表示してください。 |
|
先に、イベントプロパティの「更新後処理」と「変更時」について補足しておきます。 |
フォームのコントロール(テキストボックス等)でデータの入力や変更を行い、他のコントロールにフォーカスを移動すると、BeforeUpdateイベント(更新前処理)とAfterUpdateイベント(更新後処理)が発生します。この2つのイベントの発生順序は、BeforeUpdate→AfterUpdateです。 |
また、テキストボックス部分(中に表示されて文字等)を変更すると、その時点でChangeイベント(変更時)が発生し、Changeイベントはコントロールの値が変更される度に発生します。Changeイベントは、他のコントロールまたはレコードにフォーカスを移動する前に発生し、その後BeforeUpdateイベントとAfterUpdateイベントが発生します。 |
もっと知りたい方は、ヘルプの「フォームのコントロールのイベント」を参照してみてください。 |
|
今回は、テキストボックスに入力してEnterを押した後でメッセージを表示する処理にしたので、「更新後処理」にコードを記述します。 |
|
さっきの続きに書き込んで、フォームに戻って何か入力してみてください。 |
 |
入力してEnterを押すと、出ました。 |
|
では今度は「テキストボックスの中身をそのまま出す」ように命令しましょう。 |
VBAプログラムからフォーム(オブジェクト)上のテキストボックス(コントロール)を参照する場合は、
|
Forms!フォーム名!テキストボックス名
|
と書きます。 |
「Forms」は、Formコレクションといって、フォームの集合体です。 |
「フォーム名」は、コントロールのあるフォームの名前です。 |
オブジェクトとオブジェクトの間には、!(感嘆符)を使います。 |
コントロール名に空白やハイフンなどの記号が含まれる場合は、 |
[Forms]![フォーム名]![テキストボックス名-1]
|
のように角カッコ([ ])で囲みます。 |
|
また、この場合は、フォーム(のイベントプロパティ)に記述しているモジュールから同じフォームに含まれるテキストボックス(コントロール)を参照しているので、Meプロパティを利用してもっと簡単に書くこともできます。 |
Me!テキストボックス名
|
|
|
|
入力した言葉のあとに決まった言葉を入れたい場合は、 & と "" で括りましょう。&は、文字列連結記号といって、文字列を続けたい場合に記述します。 |
|
|
|
どうですか?エディタやイベント、新しい言葉などがたくさん出てきましたね。 |
一度覚えてしまえば楽になりますのでがんばりましょう! |
|
|
|
|