見出し画像

【Access小技紹介】フォームのサイズ変更に連動したサブフォームの自動サイズ変更

こんにちは!エアリー社員のFです!

皆さんはAccessをお使いになることはあるでしょうか?
今回は、Accessの中でも、フォーム使用時に利用できるテクニック「フォームサイズ変更に連動したサブフォームの自動サイズ変更」をご紹介します。

1.概要


Accessでフォームを作成する際、サブフォームを配置、表示した時に、「サブフォームのサイズを大きくしたい」と思う事もあるかと思います。

しかし、フォームのサイズを変更しても、サブフォームのサイズは連動せず、サイズ変更されません。

今回は、フォームのウィンドウサイズ変更に連動させて、サブフォームのサイズ変更を実現させてみたいと思います。

2.手順

(1) 事前準備

・Accessにてマクロの記録(VBAの記載)が出来る状態にする

(2) フォームのプロパティを開く

・対象のフォーム名を右クリックし、「デザインビュー」をクリック

・対象のフォーム上で右クリックし、「フォームのプロパティ」をクリック

・「イベント」タブから「サイズ変更時」を選択後、
コンボボックスから「[イベント プロシージャ]」を選択し、「・・・」をクリック

(3) コードを記述する

・以下のコードを入力し、保存する

Option Compare Database

'サブフォームの自動追従
Private Sub Form_Resize()
    '==各値の説明
    '●InsideWidth:フォーム内の横幅
    '●InsideHeight:フォーム内の縦幅
    '●[横幅]については、以下の計算式で算出
    '  ・フォームの横幅 - サブフォームの横幅 × 567
    '●[縦幅]については、以下の計算式で算出
    '  ・フォーム内「詳細」の縦幅 - サブフォームの縦幅 × 567
    
    '==処理
    'サブフォーム:横の追従
    Me.subForm.Width = Me.InsideWidth - [横幅]
    
    'サブフォーム:縦の追従
    Me.subForm.Height = Me.InsideHeight - [縦幅]

End Sub

※補足
[横幅] 及び [縦幅] については、「twip」というMicroSoft製品で使われる長さの単位で指定します。
1cm = 567twipとなるため、「cm単位の幅×567」で、幅の長さを算出しています。

3.実際に動かしてみる

では、実際にフォームのサイズ変更を試してみましょう。

無事、フォームのサイズ変更に連動し、サブフォームのサイズも変更されるようになりました。

4.終わりに

今回は、Accessのフォームについてのテクニックを紹介してみました。
今回ご紹介したテクニックは、列が多いテーブルを表示したりするときに重宝します。
是非ご活用ください!



我々、株式会社エアリーは、
千葉で働きたい・頑張りたい人材を募集しております!
新卒採用中途採用どちらも募集しております!
以下HPより、皆様のご応募お待ちしております。
【株式会社エアリー:ホームページ】

この記事が気に入ったらサポートをしてみませんか?