ユーザーフォームを表示する位置を設定する(StartUpPosition,Top,Leftプロパティ)

VBA のプログラムの中からユーザーフォームを表示する場合に、表示する位置を設定する方法です。大まかな位置を設定するには StartUpPosition プロパティを使用します。手動で位置を設定するには Top プロパティと Left プロパティを使用します。ここでは Excel のユーザーフォームで VBA を使ってユーザーフォームを表示する位置を設定する方法について解説します。

(Last modified: )

大まかな位置を設定する

ユーザーフォームを表示する大まかな位置を VBA のプログラムで設定するには StartUpPosition プロパティを使用します。書式は次のとおりです。

object.StartUpPosition = 値

設定できる値の種類は次のものが用意されています。

説明
0手動で設定する
1Excelの中央
2Windowsの中央
3画面の左上隅

0 を指定した場合は Top プロパティおよび Left プロパティを使って表示する位置を手動で設定します。

1 を指定した場合はユーザーフォームを表示する Excel の中央位置に表示されます。デフォルトの値は 1 になっています。

2 を指定した場合は Windows の画面の中央位置に表示されます。

3 を指定した場合は Windows の画面の左上隅の位置に表示されます。

各値を設定したときに、ユーザーフォームがどの位置に表示されるのかは次の図を参照されてください。

大まかな位置を設定する(1)

サンプルコード

それでは簡単なサンプルを作成して試してみます。

あらかじめ次のようなユーザーフォームを作成しています。ユーザーフォームのオブジェクト名は UserForm1 です。

大まかな位置を設定する(2)

標準モジュールの中のモジュールに次のようにプログラムを記述しました。(モジュールを追加してコードウィンドウを表示する方法については「VBAプログラムの作成と実行」を参照されてください)。

Option Explicit

Sub テスト()
    Load UserForm1
    UserForm1.StartUpPosition = 1
    UserForm1.Show
End Sub

大まかな位置を設定する(3)

それではプログラムを実行してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

大まかな位置を設定する(4)

プログラムが実行されてユーザーフォームが表示されました。今回は StartUpPosition プロパティの値として 1 を指定しているので Excel の画面の中央にユーザーフォームが表示されます。

大まかな位置を設定する(5)

表示する位置を数値で指定する

ユーザーフォームを任意の位置に表示したい場合は StartUpPosition プロパティの値として 0 を指定した上で Top プロパティおよび Left プロパティを使って位置を指定します。書式は次の通りです。

object.Top [= Single ]
object.Left [= Single ]

画面の上端からユーザーウィンドウの上端までの距離を Top プロパティに単精度浮動小数点型の数値で指定します。同じく画面左端からユーザーウィンドウの左端までの距離を Left プロパティに単精度浮動小数点型の数値で指定します。単位はポイントです(1 pt ≒ 0.35 mm)。

例えばユーザーフォームの左上の位置が、画面左上から上が 20 ポイント、左が 15 ポイントの位置に表示する場合は次のように記述します。

object.StartUpPosition = 0
object.Top = 20
object.Left = 15
サンプルコード

それでは簡単なサンプルを作成して試してみます。

あらかじめ次のようなユーザーフォームを作成しています。ユーザーフォームのオブジェクト名は UserForm1 です。

表示する位置を数値で指定する(1)

標準モジュールの中のモジュールに次のようにプログラムを記述しました。

Option Explicit

Sub テスト()
    Load UserForm1
    UserForm1.StartUpPosition = 0
    UserForm1.Top = 200
    UserForm1.Left = 100
    UserForm1.Show
End Sub

表示する位置を数値で指定する(2)

それではプログラムを実行してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

表示する位置を数値で指定する(3)

プログラムが実行されてユーザーフォームが表示されました。

表示する位置を数値で指定する(4)

ユーザーフォームの左上の位置は、画面の左上の位置から上は 200pt 、左は 100pt の位置に表示されました。

表示する位置を数値で指定する(5)

-- --

Excel のユーザーフォームで VBA を使ってユーザーフォームを閉じる方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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