Access VBAでフォームのサイズと表示位置を指定して開くコード|DoCmd.MoveSizeを使用

DoCmd.MoveSizeを使用し、指定したサイズと位置でフォームを開くVBAを掲載しています。

BackHome Backフォーム

メニューフォームからサブフォームを開く場合、サイズと表示位置を指定することで、見栄えもよくなり操作性が向上することがあります。
指定するにはフォームの読み込み時イベント内で、 DoCmd.MoveSizeを使用します。
構文 : DoCmd.MoveSize Right, Down, Width, Height

  • Right - (省略可) フォーム左上の水平位置
  • Down - (省略可) フォーム左上の垂直位置
  • Width - (省略可) フォームの幅
  • Height - (省略可) フォームの高さ

このページでのフォームとVBAの作成手順

  • [サブフォームを開く]ボタンを配置したメニューフォームを作成します。
  • [サブフォームを開く]ボタンにサブフォームを開くVBAを入力します。
  • [閉じる]ボタンを配置したサブフォームを作成します。
  • [閉じる]ボタンのクリックイベントに、フォームを閉じるVBAを入力します。
  • サブフォームの読み込み時イベントに、DoCmd.MoveSizeのVBAを入力します。

これでメインフォームの[サブフォームを開く]ボタンをクリックすると、指定したサイズと位置でサブフォームが開きます。

関連する「フォームを開いた時、新規レコードに移動する」も参照してください。




メニューフォーム

下が作成したメニューフォームです。
[サブフォームを開く]ボタンをクリックすると、サイズと表示位置が指定されたフォームが開きます。

メニューフォーム

サブフォームのイベント プロシージャを作成する

1.サブフォームの読み込み時イベントで、[イベント プロシージャ]を選択します。
2.[…]ボタンをクリックします。

イベント プロシージャを作成

VBE画面が表示され、Form_Load内にVBAを入力します。

Form_Load内にVBAを入力

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

「DoCmd.MoveSize Right, Down」で、左上の位置が設定できます。
ここでは、Rightを1000、Downを2000にしました。

Private Sub Form_Load()
    DoCmd.MoveSize 1000, 2000
End Sub

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

[サブフォームを開く]ボタンをクリックすると、サブフォームは指定された位置に表示されます。

サブフォームは指定された位置に表示

フォームのサイズを指定する

ここでは、サブフォームに配置している[閉じる]ボタンを基準にしてサイズを設定します。
上位置は、Me!コマンド0.Left + Me!コマンド0.Width + 1000にしました。
これで[閉じる]ボタンの右端+1000のサイズになります。
下位置は、Me!コマンド0.Top + Me!コマンド0.Height + 1000
これで[閉じる]ボタンの下端+1000のサイズになります。

Private Sub Form_Load()
    DoCmd.MoveSize 1000, 2000, _
        Me!コマンド0.Left + Me!コマンド0.Width + 1000, Me!コマンド0.Top + Me!コマンド0.Height + 1000
End Sub


フォームのサイズを指定する

サブフォームは[閉じる]ボタンを基準にしたサイズで表示されます。

ボタンを基準にしたサイズで表示

BackHome Backフォーム

Copyright(C) FeedSoft