ユーザーフォームを表示する位置を設定する(StartUpPosition,Top,Leftプロパティ)
VBA のプログラムの中からユーザーフォームを表示する場合に、表示する位置を設定する方法です。大まかな位置を設定するには StartUpPosition プロパティを使用します。手動で位置を設定するには Top プロパティと Left プロパティを使用します。ここでは Excel のユーザーフォームで VBA を使ってユーザーフォームを表示する位置を設定する方法について解説します。
(Last modified: )
大まかな位置を設定する
ユーザーフォームを表示する大まかな位置を VBA のプログラムで設定するには StartUpPosition
プロパティを使用します。書式は次のとおりです。
object.StartUpPosition = 値
設定できる値の種類は次のものが用意されています。
値 | 説明 |
---|---|
0 | 手動で設定する |
1 | Excelの中央 |
2 | Windowsの中央 |
3 | 画面の左上隅 |
0 を指定した場合は Top
プロパティおよび Left
プロパティを使って表示する位置を手動で設定します。
1 を指定した場合はユーザーフォームを表示する Excel の中央位置に表示されます。デフォルトの値は 1 になっています。
2 を指定した場合は Windows の画面の中央位置に表示されます。
3 を指定した場合は Windows の画面の左上隅の位置に表示されます。
各値を設定したときに、ユーザーフォームがどの位置に表示されるのかは次の図を参照されてください。
それでは簡単なサンプルを作成して試してみます。
あらかじめ次のようなユーザーフォームを作成しています。ユーザーフォームのオブジェクト名は UserForm1
です。
標準モジュールの中のモジュールに次のようにプログラムを記述しました。(モジュールを追加してコードウィンドウを表示する方法については「VBAプログラムの作成と実行」を参照されてください)。
Option Explicit Sub テスト() Load UserForm1 UserForm1.StartUpPosition = 1 UserForm1.Show End Sub
それではプログラムを実行してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
プログラムが実行されてユーザーフォームが表示されました。今回は StartUpPosition
プロパティの値として 1 を指定しているので Excel の画面の中央にユーザーフォームが表示されます。
表示する位置を数値で指定する
ユーザーフォームを任意の位置に表示したい場合は 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
です。
標準モジュールの中のモジュールに次のようにプログラムを記述しました。
Option Explicit Sub テスト() Load UserForm1 UserForm1.StartUpPosition = 0 UserForm1.Top = 200 UserForm1.Left = 100 UserForm1.Show End Sub
それではプログラムを実行してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
プログラムが実行されてユーザーフォームが表示されました。
ユーザーフォームの左上の位置は、画面の左上の位置から上は 200pt 、左は 100pt の位置に表示されました。
-- --
Excel のユーザーフォームで VBA を使ってユーザーフォームを閉じる方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。