8.フォーム「メニュー」の作成
 フォームを作るには、Accessの画面でフォームと書いてある部分をクリックし、新規作成ボタンを押します。この辺の操作方法は今まで(テーブル、クエリー)とだいたい一緒なので問題ないでしょう。
 新規作成ボタンを押すと、またまたこんなダイアログが出てくるから、迷わずにデザインビューを押します。ここでは、ウィザードなんて使わねーからさっ(笑)
 すると、こんな色気のかけらも無い初期画面が表示される。だって、いきなりグレーだよ、グレー!落ち込んでるときにこんな画面を見たら、ますます気が重くなっちまうじゃねーか(笑)

 と、冗談は置いといて、この画面はフォームへボタンを作ったり、色を変えたりする画面「デザインビュー」です。アプリケーションとして実行させた場合の画面はフォームビューといいます。作成時は切り替えボタン(初期画面を参照)で、デザインビューとフォームビューを切り換えることができます。
 しかし、やっぱり背景の色が気に入らない。こんな色のままで話を続けたら絶対にノイローゼになっちゃうよ・・・ということで、まずは背景の色を変えてみよう。
背景の色を変える
 背景の色を変えるには、プロパティウィンドウを表示させなきゃ話にならない。
 背景と言ったけど、正確には詳細っていう部分の背景色を変えます。ということで詳細のプロパティを表示させて下さい。方法は次の通り。(図解はこちら

1.詳細の部分へカーソルを移動
2.右クリックをしてプロパティを選択。
3.表示されたプロパティウインドウの背景色へカーソルを移動。
4.を押すと色の設定ダイアログが表示されるので好きな色を指定。

※右クリックしたときに表示されるメニュー中の塗りつぶし/背景の色で行っても同様の結果が得らるが、プロパティとの関連を説明するために、上記1〜4の手法を取っている。

これで設定完了。サンプルではこんな色にしてみた。色を明るくすれば、気分も明るくなること間違いなし!(笑)
レコードセレクタ・移動ボタン・区切り線を消す&詳細部の大きさ設定
 フォームビュー(例として使用している物は、背景色を設定する前のフォーム)にして、実行時の画面を見てみよう。レコードセレクタ区切り線移動ボタン(@〜B)が最初から付いている。しかし、テーブル等と直結してレコードの編集を行うフォーム以外では必要ない。当然、メニューフォームのような画面では全く必要ない。と言うか、使わないのに画面にあっても邪魔で迷惑この上ない。だから消してしまおう。
 設定は、デザインビューで次の通りに行って下さい。
 
1.フォームのプロパティを表示する。
2.プロパティウィンドウが表示されたら、以下のプロパティを設定。
 レコードセレクタ:いいえ
 移動ボタン   :いいえ
 区切り線    :いいえ
 スクロールバー :なし

 これで設定完了。フォームビューに切り換えて違いを見てみよう。一目瞭然だぜ!
(こちらのサンプルは、背景色を変えた後の物です)

※レコードセレクタ、区切線、移動ボタンは、住所録の中では一覧表のとき使用します。それ以外は使用しません。

 ついでに、フォームの詳細部の大きさを変えておくと良い。方法は、詳細部の右角へカーソルを移動(カーソルの形が変わるところ)し、マウスの左ボタンを押しながらカーソルを移動するだけ。
コントロールの配置(コントロールウィザードに注意!)
 コントロール(ボタンやテキストボックス等のこと)を配置する前に、ツールボックスを見てください。ツールボックスの中にがあると思います。これは、各種のコントロールを配置するときにウィザードを使うか、使わないかの指定です。
 だと、配置するときにウィザードが起動してしまいます。ここでの前提条件がウィザードは使わないなのでとして、ウィザードをOFFにしておきましょう。
 方法は、普通にクリックすれば、になります。

 ウィザードをOFFとしたところで、フォーム中へボタンをいくつか配置してみます。これらのボタンは、登録・変更等、次の処理のフォームを表示させるためのボタンで、以下がその内容です。

ボタンの
定 義 名
表題
機能等
登録
登録
フォーム「登録変更」の表示
変更
変更
フォーム「変更データ指定」の表示
削除
削除
フォーム「削除データ指定」の表示
一覧
一覧
フォーム「一覧表示オプション」の表示
終了
終了
住所録(とAccess)を終了する
 ※機能は、ボタンがクリックされたときに実行する内容。

 まず、ツールボックスからボタン(コマンドボタン)を選択肢、フォーム上へボタンを配置してください。大きさ等はお好みでどうぞ。
 とりあえず、新規ボタンを例に説明します。配置したら、ボタンのプロパティで、次の箇所を設定します。

 名前 :登録
 表題 :登録

 これで、基本的な設定はOKです。あとは、お好みでフォント・フォントサイズなど(以下のプロパティ)を設定してもいいでしょう。

 フォント名
 フォントサイズ
 フォント太さ
 フォント斜体

 残りのボタンも、同じように配置・プロパティの変更をしてください。
 サンプルでは、こんな風に配置してみました。
イベント処理の基本
 いきなりですが、イベントというものがあります。
 
 イベントとは、クリックした、フォーカスを取得・喪失した、キーボードの何らかのキーが押された等、コントロールごとに、いろいろあります。
 これらの場合に、何かをしたい時があるでしょう。例えば、別なフォームを開いたり、データを探したり、エラーメッセージを表示したり・・・。
 
 これがボタンだとすれば、ボタンが押されたときに何かを実行したいはずです。
 その方法はというと、ボタンのプロパティ中にクリック時という項目があります。ここは、ボタンがクリックされた時に何をするのかという指定をするのですが、既にお分かりでしょう。VBAで書いたプログラムを実行させます。
 
 とりあえず、変更ボタンのクリック時を[イベントプロシージャ]として、を押してみてください。
 このような画面が表示されたと思います。これがVBAの編集ウィンドウです。
 
 さらに、次の部分がボタンが押されたときの処理を行う部分です。

Private Sub 変更_Click()

End Sub

Private sub〜End sub
 1つのプロシジャの範囲。この間へ、様々な処理を記述します。
 
変更_Click()
 プロシジャ名。この場合は、変更ボタンがクリックされたとき。_Clickがクリックされたときの意味。_Clickは、Access VBAのお約束事です。
VBAでフォームを開く&練習問題
 それでは、各ボタンが押されたときの処理を作ってみましょう。ただし、登録と終了ボタンは後回しにします。
 変更・削除・一覧ボタンについては、単純にボタンが押された(クリックされた)ときに目的のフォームを開きますが、VBAでこれを行うには、DoCmd.Openformを使います。

DoCmd.OpenForm "フォーム名"

 これを、クリック時のイベントプロシジャに記述してやれば、ボタンが押されたときに目的のフォームが開きます。
 以下は、変更ボタンの記述例です。

Private Sub 変更_Click()

  '記述場所:フォーム「メニュー」
  '記述箇所:「変更」ボタンの「クリック時」

  DoCmd.OpenForm "変更データ指定"

End Sub

 なお、削除ボタンがクリックされたときはフォーム「削除データ指定」、一覧ボタンがクリックされたときはフォーム「一覧表示オプション」の各フォームを開くように、自分なりに作ってみてね。

 登録ボタンは少々込み入ったことをするので、ここでは省略。また、終了については、ず〜〜〜っと後(17.最終設定)で説明します。
フォームの強制最大化
 フォームを開いたときに、ウィンドウの大きさを自動で最大化できないものだろうか・・・。実は出来ちゃいます!

 フォームのプロパティにもイベントがあります。その中に開く時というものがあります。これは、開いたときや、フォームビューに切り換えたときに実行されるイベントで、ここへフォームを最大化させる命令DoCmd.Maximizeを記述します。

 以下が、イベントの記述例です。

Private Sub Form_Open(Cancel As Integer)

  '記述場所:フォーム「メニュー」
  '記述箇所:イベント「開くとき」

  DoCmd.Maximize

End Sub

 試しに、フォームビューへ切り換えてみてください。メニュー画面が最大化がされたでしょ?
保存しよう!
 このあたりで、一度フォームを保存します。保存の方法は、もうお分かりですね!保存時のフォーム名は、仕様通りメニューとします。

 保存が完了したら、いったんフォームを閉じてしまいましょう。本当は、まだメニュー全体が完成してるわけじゃないのですが、いろいろあるので先へ進みます。
Copyright(C) 1999-2006 結城圭介。 All rights reserved