MS Access

Accessのフォーム/レポートのコントロール同士をくっつけて桝目状にしたい

投稿日:2009年1月7日 更新日:

レポートを、Excelのような桝目の罫線にしたい。

お客からこんなニーズが多い。
やったことがある人ならわかるけど、これが、なかなか苦労する。

レポートのデザインビューで、いざ個々にコントロールをきちんと配置しようとすると、間があいたり重なったり、ピッタリ隣接して並ばない。キレイにならない。

これに10年近く悩まされている自分がここに・・・。

今日は差し迫った仕事がなかったので、時間をかけてじっくり追求してみた。
以下、追及した原因と、その対策。

フォームのグリッドについて(確認)
新規にレポートを作ると、「台紙」に、1センチ角で、方眼用紙みたいなグリッドが表示される。
そして表示はされないけど、ひとつの箱の中に10本のグリッド線が引かれている(X軸グリッド数とY軸グリッド数がともに10)。ということは、1グリッド=1ミリということになる。

原因1:自動で作成されるコントロールの大きさが中途半端
例えばテキストボックスコントロールを配置すると、幅:3cm、高さ:0.476cmで作成される。(ペアのラベルは、幅:1.587cm、高さ:0.476cm)
何でこんなに幅が中途半端なのか? 入るフォントが11ポイントなので、ぴったり入る大きさをデフォルトとしているから?

原因2:テキストボックスとそれに付随するラベルがペア
片方をドラッグして移動しようとすると、グループのもう片方がついてくる。便利なこともあるのだが、例えば二組のグループを表のように隣り合わせて配置しようとしたときに、ぴったり合わないで困る。
それぞれのコントロールの上下左右を引っ張ったり伸ばしたりして、グリッドに吸着させるが、4辺×4つのコントロールだから、16回それをしないといけない。
20個のコントロールを整えるとすると、4辺×20個で80回しないといけない。
大変面倒。

今までの対策
で、私の場合、レポートに散らばった大量のコントロールを表のように揃える時は、

  1. だいたいの位置に並べる。
  2. 複数のコントロールを選択し、「コントロールの配置」-「左」で揃える
  3. グリッド線がデフォルトは黒で、コントロールの色と同じなため、本当に揃っているのがわかりにくいので、全コントロールをプロパティで、境界線スタイルを実線にし、境界線色を赤にする。
  4. 印刷プレビューで線がずれていないのが確認できたら、3で付けた線のプロパティを元に戻す

・・・とやってきた。

でもこのやり方だと、2でテキストボックスはぴったり揃うのだが、それにヒモつけられたラベルもまとめて同じようにやろうとすると、左のつらで揃わない。ラベルの幅は、そこに入力される文字数によって大きさが勝手に広がってまちまちだから。
なので、さらに作業として、ペアとなるテキストボックスの幅や高さを調べて、それと同じにした上で、2の方法でそろえたり、プロパティに直接数値をタイプしたり。
それを複数選択したコントロールに施していく。
このやり方でやっと完成したとしても、その後、一部のコントロールの幅を広げたり縮めたりする必要が出てきたら、またひと苦労。修正もれも出やすい。うんざり。

今回発見した対策

  1. だいたいの位置に並べる。
  2. 全コントロールを選択し、「サイズ」-「グリッド線にあわせる」で大きさをグリッド線の基準に揃える(レポートの「グリッド線にあわせる」コマンドではなく、コントロールのサイズの「グリッド線にあわせる」コマンドであるのが紛らわしい)
  3. テキストボックスをドラッグして配置する。
  4. 必要に応じて、複数のコントロールを選択し、「コントロールの配置」-「左」で揃える

いやー、作業効率が大幅向上。
うれしい。

-MS Access

執筆者:

関連記事

no image

AccessのレポートでNoDataでイベントキャンセル後もReport_Closeが実行されて困った

Accessのレポートで表示するデータがない場合は、以下のように書けばスマートにキャンセルできる。 Private Sub Report_NoData(Cancel As Integer) MsgBo …

no image

SqlServerにAccessでいうオートナンバー型をつける

テストデータを作るために、Accessで2万件ほどのデータを用意し、別途追加クエリを作って、ODBC接続したSqlServerに追加しようとしたところ、「型変換エラーがどうのこうので追加出来ない」との …

no image

.htaccessと25番ポートブロック

初めてレンタルサーバの乗り換えにチャレンジした、昨日客先。 前日から今朝まで、新アドレスでの表示はずっと「500 Internal Server Error」。 乗り換え先レンタルサーバにサポート依頼 …

no image

Access2013のWeb機能について(FileMakerと比較して)メモ

ここ数日、MS-Access 2013のWeb機能を勉強していたので、そのメモ。 ■フォームの書式 選択肢があまりに少ない。FMのようにデザインやテーマが用意されていない。 リスト表示のサイズが変更で …

no image

AccessでNot in だと Null が抽出されないのは

以下のページに詳しく。 ACCESS クエリ 条件以外のレコードを抽出するには? – Access(アクセス) 解決済 | 教えて!goo <http://oshiete.goo.n …