即効テクニック

ユーザーフォーム関連のテクニック

フォームのサイズを変更する

(Excel 97)
●詳細●
フォームのサイズを変更するには、フォームのHeightプロパティに目的の値を設定します。
サンプルでは、フォームの上半分に今日の日付、下半分に時刻が表示されるフォームを作成します。そのフォームに配置されたコマンドボタンをクリックすると、全体が表示されたり、上半分の日付のみが表示されたりとなるように、フォームのサイズを変更します。

●準備●
高さ144ポイントのフォームを用意します。高さは、プロパティウィンドウの[Height]プロパティで設定してください。
フォームの左上に、コマンドボタン「CommandButton1」を配置します。
フォームの上半分にラベル「Label1」、下半分にラベル「Label2」を配置します。

フォームを表示する時に発生するイベント「Initialize」に、ラベル「Label1」には日付を、ラベル「Label2」には時刻を表示する処理を記述します。
Private Sub UserForm_Initialize()

    Label1.Caption = Date
    Label2.Caption = Time
    
End Sub
コマンドボタンをクリックした時に発生するイベント「Click」には、フォームのサイズが144ポイントの場合は72ポイントにサイズを設定し直し、72ポイントの場合は144ポイントに設定し直す処理を記述します。
DoEvents関数は、発生したイベントがオペレーティングシステムによって処理されるように、プログラムで占有していた制御をオペレーティングシステムに渡すフロー制御関数です。
Private Sub CommandButton1_Click()

    If Me.Height = 144 Then
        Me.Height = 72
    Else
        Me.Height = 144
    End If
    
    DoEvents
    
End Sub
●実行方法●
フォームを表示します。
最初に表示されたときは、フォーム全体が見えます。
コマンドボタンをクリックすると、フォームのサイズが半分になり、下半分(時刻)が見えなくなります。
再びコマンドボタンをクリックすると、フォーム全体が見えます。