Access

Accessのフォームの位置/サイズ固定方法

フォームの位置

最近はAccessのフォームをタブ形式で作成することが多かったのですが、今回は現場のニーズでウィンドウ形式で開発しています。

要望は、複数のフォームを自分で好きな場所に配置して使いたいというものでした。

好きな場所に配置して使うので、できれば次回起動の際には「好きな場所・好きな配置」通りに表示してくれたほうがユーザビリティが高いと思われます。

そこでユーザーが最後に利用した場所を保存し、次回起動時に保存した場所にフォームを表示するように実装することにします。

最後にフォームを利用した場所とサイズを保存する

設定を保存するテーブルを用意する

フィールド名 PK
ログインアカウント テキスト型
入力フォーム上 長整数型
入力フォーム左 長整数型
入力フォーム幅 長整数型
入力フォーム高さ 長整数型

システムを利用するログインユーザー毎にレコードを準備します。

今回はこのテーブルに格納されているユーザのみシステムを利用できるという前提となっています。(レコードが存在しない時にユーザーを追加する機能は実装しません)

共通変数・定数を定義する

事前に共通で使う変数と定数を定義しておきます。

フォームを閉じるときにテーブルに情報を格納する

対象のフォームを閉じるときに、現在ログインしているユーザーのレコードに現在位置・フォームのサイズを保存します。

フォームを指定位置に表示する

フォームを開く時(ロード時)に保存された情報を取得する

対象のフォームを開くときのイベントで管理テーブルからログインユーザーのデータを取得し、MoveSizeメソッドを使ってフォームの位置・サイズを調整します。

指定位置にフォームを移動する関数

ロード時のスクリプトで上記の関数を呼び出します。

念のため規定のサイズにリセットする機能も設ける

ユーザーがフォームのサイズを自由に変更できる仕様なので念のためサイズを初期化できるようボタンを1つ用意しておきました。

幅や位置に指定する数値の単位はtwipです。

twipの大きさをcm、ピクセルに変換するとおおよそ以下のような値になります。

  • 1cm = 567twip
  • 1ピクセル=15twip
ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。