コントロールの位置を設定する(Top,Leftプロパティ)

ユーザーフォームに設置したコントロールの位置を設定するには Top プロパティと Left プロパティを使用します。画面の上端からコントロールの上端までの距離を Top プロパティ、画面の左端からコントロールの左端までの距離を Left プロパティで設定します。ここでは Excel のユーザーフォームで Top プロパティおよび Left プロパティを使ってコントロールの位置を設定する方法について解説します。

(Last modified: )

コントロールの位置を設定する

コントロールの位置を設定するには Top プロパティと Left プロパティを使用します。例えば次の位置に設置したラベルの Top プロパティおよび Leftプロパティの値はそれぞれ 12 と 18 に設定されています。この値はラベルの左上隅の位置を表しています。

コントロールの位置を設定する(1)

コントロールの位置を設定する(2)

位置を設定するには Top プロパティまたは Leftプロパティをクリックし、値を直接編集してください。単位はポイントです。

例えば Left プロパティの値を 40 に変更してみます。すると画面上部からラベル上部までの距離が変更されました。

コントロールの位置を設定する(3)

今度は Top プロパティの値を 80 に変更してみます。すると画面左端からラベルの左端までの距離が変更されました。

コントロールの位置を設定する(4)

このように Top プロパティおよび Left プロパティの値を変更することで、コントロールの位置を設定することができます。

VBAのプログラムの中でTopプロパティを設定する

プロパティウィンドウを使って Top プロパティや Left プロパティの値を変更する代わりに、 VBA のコードを記述して Top プロパティや Left プロパティの値を変更することもできます。

プログラムの中で Top プロパティを設定する場合は次の書式を使用します。

オブジェクト.Top [= Single ]

対象のオブジェクトの Top プロパティに対して、画面の上端からコントールの上端までの距離を単精度浮動小数点型の数値で代入します。単位はポイントです。

プログラムの中で Left プロパティを設定する場合は次の書式を使用します。

オブジェクト.Left [= Single ]

対象のオブジェクトの Left プロパティに対して、画面の左端からコントールの左端までの距離を単精度浮動小数点型の数値で代入します。単位はポイントです。

サンプルコード

簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャを作成し、その中で Top プロパティおよび Left プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。

Initialize イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。

ユーザーフォームのコントロールが何もないところをダブルクリックしてください。

VBAのプログラムの中でTopプロパティを設定する(1)

ユーザーフォームの規定のイベントである Click イベントに対するイベントプロシージャが表示されます。

VBAのプログラムの中でTopプロパティを設定する(2)

今回はユーザーフォームの Initialize イベントに対するイベントプロシージャを使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。

Private Sub UserForm_Initialize()
    Label1.Top = 20
    Label1.Left = 25
    With CommandButton1
        .Top = 60
        .Left = 25
    End With
End Sub

VBAのプログラムの中でTopプロパティを設定する(3)

これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

VBAのプログラムの中でTopプロパティを設定する(4)

ユーザーフォームが表示されました。追加されているラベルとコマンドボタンの画面上端からの距離と画面左端からの距離がそれぞれ変更されていることが確認できます。

VBAのプログラムの中でTopプロパティを設定する(5)

このように VBA のプログラムの中で Top プロパティおよび Left プロパティの値を変更することができました。

-- --

Excel のユーザーフォームで Top プロパティおよび Left プロパティを使ってコントロールの位置を設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。