今回はAccessで新しくフォームを作成する際に、「設定しておくと良いプロパティの項目」を紹介します。
尚、今回の記事ではAccess2010という古いAccessを元にスクリーンショットを作成したり、内容を解説していますが、新しいAccessもおそらくほぼ同様だと思うので、最新のバージョンのAccessを使用されている人でも参考にしていただけると思います。
はじめに
Accessではデータを見やすく表示したり、効率よくデータを入力できるように「フォーム」を作ることができます。
フォームは簡単に作ることができるので、ITエンジニアではない一般的な事務職の仕事をしている人でも、作り方を独学で習得し、積極的に活用しているケースも多いです。
ただ、Accessのフォームは「プロパティ」と呼ばれる設定項目が多くあり、Accessの初心者にとっては、どの項目を設定するべきかを適切に理解するのは難しかったりします。
また、Accessを覚えたての人が作成したフォームだと、フォームのプロパティも作成時の初期値のままという場合も多く、見た目が良くなかったり、使いづらかったりします。
そこて、今回の記事では、Accessの初心者向けに、新しく作成したフォームで設定しておいた方が良い「プロパティ」項目を紹介していきます。
プロパティとは
Accessでは、今回紹介する「フォーム」だけではなく、フォーム内に設置するテキストボックスやラベルなどの様々なパーツの設定をするために「プロパティ」と呼ばれる設定項目があります。
「プロパティ(property)」とは日本語に訳すと「特性」とか「属性」などになりますが、日本語で現してみても何かしっくりきません。
「プロパティ」という言葉は、「オブジェクト指向プログラミング」という概念では一般的な言葉です。
「オブジェクト」がプログラムの塊であり、「メソッド」がそのプログラムが実行する処理や動作であり、「プロパティ」がオブジェクト内で使われるデータです。
Accessのフォームの例で言えば、「フォーム」の様な機能を何も無いところから作るのは大変なので、MicrosoftがAccessに「フォーム」というオブジェクトを用意してくれました。
フォームオブジェクト内部のプログラムの仕組みをユーザーが意識しなくてもカスタマイズして使えるように色々な「プロパティ」を用意し、そのプロパティの値を変更することで、フォームはそのプロパティの値を元に、見た目を変えたり、動きを変えたりすることができます。
長々と書きましたが、取り敢えずAccessで予め用意されている各オブジェクトの動きや見た目などを変更するための設定項目を「プロパティ」と呼びます。
ご参考まで。
最初に設定しておいた方が良いプロパティ
まずは、フォームを新しく作成した際のプロパティの初期値のスクリーンショットを掲載します。
一つのタブだけ表示していますが設定項目はたくさんあります。
ただこのなかでも項目の意味を理解しておく方が良い箇所はそれほどありません。
次の項からは、数あるフォームのプロパティのなかから、内容を理解して個々に設定した方が良い項目を紹介していきます。
※因みに上記のプロパティ一覧画面はフォーム作成時に「フォームデザイン」を選択して作成した場合のプロパティ初期値です。
隣の「空白のフォーム」を選択した場合は若干異なりますが、主要な設定はほぼ同じです。
標題
フォーム作成時の当プロパティ初期値は空白です。
ここは空白のままフォームを使用している人も結構居るんですが、ここはユーザーに見せる用のフォーム名を指定しておいた方が良いです。
ここの値を指定しておくこと、その指定した値がフォームの名前としてウィンドウの上部に表示されます。
尚、標題を指定せず空白の場合は、フォームそのものの名前がフォームのウィンドウ上部に表示されます。
ただ、フォームの名前はシステム内部でも使用することから、VBAで扱いやすいように英語で命名していたり、オブジェクトごとに個別の命名規則を設けて名前を指定している場合はユーザーから見た場合に判りづらい名前でウィンドウ上部に表示されることになります。
また、ユーザーと特定のフォームに対して何らかの意見や報告をもらう際にも、システム内部で使用されるフォーム名とは別で、ユーザーが認識しやすいフォーム名が表示されていた方がやり取りはスムーズです。
よって、「標題」は”メインメニュー”とか”顧客登録画面”とかユーザーが見てもわかりやすい名前を指定しておきましょう。
自動中央寄せ
ここは初期値では「いいえ」になっていますが、特別な理由がない限りは「はい」に変更しておきましょう。
ここを「はい」に変更しておくことで、このフォームを開いた際に、必ずAccessの画面内の中央の位置でフォームが表示されるようになります。
ここが「いいえ」のままだと、対象のフォームを最後に閉じた位置で再度フォームが開くことになるため、フォームを開くたびに表示される位置が変わってきてしまい、使いづらいアプリケーションになってしまいます。
境界線スタイル
ここは初期値だと「サイズ調整可」という値になっています。
その設定だと、ユーザーがフォームを開いた後に、フォームウィンドウの境界線をドラッグすることで、フォームの横幅を広げたり、高さを縮めたりと自由に大きさや形を変更することができます。
ただ、アプリケーション作成者がフォームを作成する際には、フォーム内に表示するテキストボックスやリストボックス、サブフォームなどの大きさや配置なども考慮してフォームの大きさを決めているはずです。
よって、ユーザーによって自由にそのフォームのサイズを変更されてしまうと、困る場合も多いです。
ここを例えば「細線」などに変えておくことで、ユーザーはフォームの大きさを自由に変更できなくなります。
レコードセレクター
ここもよく初期値のままフォームを使用しているケースが多く見受けられます。
このプロパティは、フォームにテーブルやクエリなどのデータを連結して表形式で表示する場合に、現在選択しアクティブになっているカレントレコードを視覚的にわかりやすくする為に使用する機能です。
ただ、対象のフォームが連結フォームではなかったり、データを表形式で表示する目的のフォームでないのであれば、レコードセレクターが有効になっていると、見栄えが悪くなり、デザイン性が下がります。
見た目が悪いアプリケーションはどれだけ機能面で優れていても、ユーザーに高い満足度を提供できません。
レコードセレクターが有効だからといって、機能面では特に弊害はないのですが、見た目が大きく関係してくるため、レコードセレクターが必要なければ、必ず「いいえ」を指定して無効化しておきましょう。
移動ボタン
この項目も変更しないまま使用しているケースは多いです。
「移動ボタン」が有効な場合、連結フォームにおいてフォーム下部にカレントレコードを移動するためのボタン等が配置されます。
当然連結フォームを使用していなければ不要な機能です。
前述した「レコードセレクター」はフォーム内に連結したデータを表形式で表示する場合に使用する機能ですが、この「移動ボタン」に関しては、フォーム内に一つのデータを表示させて、この「移動ボタン」でフォームに表示しているデータを次や前の行のデータに切り替えていくような使い方をするための機能です。
個人的には連結フォームを作った場合でも、カレントレコードの移動はコマンドボタンをフォーム内に配置し、VBAの処理で実装することが大半なので、この機能を使用するケースは殆どありませんでした。
見た目的にもフォームのデザインを損なうため、使用する予定のない機能であれば、確実に無効化しておきましょう。
スクロールバー
初期値では「水平/垂直」が指定されます。
この設定は、テーブルなどと連結したフォームで、フォーム自体の横幅や高さより連結したデータの表示列が多くて横幅がフォーム幅より大きい場合や、データの行数が多くてフォーム自体の高さでは足りない場合に「水平」や「垂直」のスクロールバーが自動的に表示され、データをスライドして表示できるようにするための機能です。
親フォームのなかに埋め込むサブフォームなどでは、表形式のフォームを使用することが多く、その場合はフォーム自体の枠の大きさが決まっていることもあり、このスクロールバーを有効にして、上下や左右のスクロール機能を実装します。
ただ、メニュー画面的なフォームだったり、表形式の様なフォームではなく、単一行を表示するだけのフォームであれば、スクロール機能は不要なので「なし」に変更しておく必要があります。
ここの設定が「なし」以外の場合でも、スクロールする必要がなければスクロールバーは表示されないので、一見するとわざわざ変更しなくても支障がない設定項目にも感じますが、実はフォームのデザイン的にも地味に影響を及ぼします。
例えば、以下のスクリーンショットの様に、デザイン目的でフォームの右端に「四角形」コントロールを配置します。
デザインビューでの表示では、フォームの右端に「四角形」コントロールが同じ位置に重なって設置されています。
Accessのフォームはいかにも「業務システム」的なUIになりがちなので、こういった「四角形」コントロールを使ってデザインを工夫することが時々あります。
ただ、「スクロールバー」が初期値の設定のままだと、そのフォームを実際に開くと以下の様な表示になります。
フォームの右端に謎の空白が存在しており、せっかく工夫したデザインが台無しです。
この「スクロールバー」の設定では、「なし」を指定しない限り、対象のフォームでスクロールが必要なデータが存在しない場合であっても、フォームの右端や最下部にスクロールバー用を表示する領域が必ず確保されます。
上記画像のフォーム右端の空白は、そのスクロールバーの表示用に領域になります。
このように、スクロールバーを無効化しておかないと、フォームの端に余計なスペースが発生することになり、フォームのデザインを作るうえで邪魔になります。
よって、スクロールバーが必要になることのないフォームであれば、必ず「なし」を指定しておきましょう。
コントロールボックス
初期値では「はい」になっています。
「コントロールボックス」とは、フォームの右上に表示される「最小化」「最大化」「閉じる」のアイコン及び機能をまとめた名前です。
この設定を「いいえ」にすると、コントロールボックスの各アイコンは表示されなくなります。
Accessでアプリケーションを作成している場合では、「最小化」や「最大化」の機能を許容する必要があるケースは少ないです。
例えば「最大化」を有効にしておいてユーザーが最大化をしたところで、通常はフォームの余白がただ画面のサイズに合わせて広がるだけで、テキストボックスが大きくなり、文字が等倍で大きくなる訳でもありません。
よって特に「最大化」を使えるようにしておくメリットはないと思います。
「最小化」にしても、もしアプリケーションとしてユーザーに使用してもらっているフォームで最小化をされると、そのフォームが最小化した状態でAccessの画面下部に残り続けます。
アプリケーションの設計的には大変邪魔ですし、ユーザーからしてもざわざわ最小化したいケースは殆ど存在しません。
また、「閉じる」機能については、フォームを閉じる機能についてボタンなどを配置して閉じる処理を入れなくても済むもので、実装時のメリットもあるとは思いますが、例えば画面遷移やデータの登録などの諸々操作はボタン押下のイベントから実施するのに、画面を閉じる操作だけはフォーム右上のバツボタンというのもUI設計上、個人的には違和感があります。
よってアプリケーションのUI設計的にも、フォーム右上の閉じるボタン機能は殺して、コマンドボタンコントロールなどの押下処理内で閉じる処理を実装する設計を推奨します。
尚、この「コントロールボックス」のプロパティは注意が必要で、「いいえ」を指定してフォームの右上に最小化などのボタンが表示されなくなりますが、最小化などの機能の”無効化”とは無関係です。
具体的には、「いいえ」を指定して、最小化などのボタンが表示されなくなりますが、後述する「閉じるボタン」や「最小化/最大化ボタン」のプロパティを「いいえ」に指定しない限り、最小化などのボタンが配置されていたはずのフォームの右上の領域をクリックすると、各ボタン自体は見えないが実在はしており、最小化や最大化、閉じる動作は有効なまま機能します。
この仕様を知らないと、何もボタンが表示されていないフォームの右上をクリックすると最小化したり閉じたりするので、最初は面食らいます。
よって、「コントロールボックス」はなるべく使用しないことをお勧めするとともに、使用しない場合は、当設定項目を「いいえ」にするだけではなく、プロパティ項目の「閉じるボタン」と「最小化/最大化ボタン」も併せて無効化しておきましょう。
閉じるボタン及び最小化/最大化ボタン
前項の「コントロールボックス」の項でも説明しましたが、フォーム右上のバツで閉じるボタンや最小化、及び最大化のボタンの有効、無効はこの設定値で指定します。
前項でも説明したとおり、ともに無効化しておきましょう。
その他タブ内の「ポップアップ」
初期値では「いいえ」が設定されています。
ここを「はい」にすることで、フォームを開く際に必ずどの画面より手前で開き、且つAccessのタブではなく、Access内のウィンドウとしてフォームが開きます。
Accessでは、フォームを開く際の状態によってはAccess内のタブとしてフォームが開く場合があります。
ただ、業務アプリケーションでフォームを使用する場合は、タブでフォームが開くと支障があるため、この設定を有効化しておくことで、タブで開くことはなくなります。
これらの理由により、特に「ポップアップ」を無効化しておく理由がないなら、取り敢えず有効化しておくことを推奨します。
最後に
今回はAccessでフォームを作成した際に意識して設定しておきたいプロパティ項目を紹介しました。
今回紹介した項目はAccessでアプリケーションを作る際の「初心者っぽいフォーム」から脱却する場合に必須の知識になります。
フォーム作成後でも変更できる項目なので、是非当記事を参考に色々見直してみてください。
また、各プロパティの設定は、VBAで実施することもできます。
例えば条件によって、起動するフォームの「標題」を変えるとか、何らかのイベントで特定のプロパティの値を設定し直すといった、より高度な実装も可能です。
興味があれば、是非ネットで調べて試してみてください。
では、今回も読んでいただきましてありがとうございました。
↓良かったら併せてお読みください。
↓ナビゲーションフォームって何?
是非活用してみてください。