ブックを開いた時にユーザーフォームを表示する方法
ブックが開いたときに、ユーザーフォームを表示するには、ThisWorkbook【ディスワークブック】モジュールにワークブックが開いたときに発生するWorkbook_Open【ワークブックオープン】イベントプロシージャーにUserForm【ユーザフォーム】コントロールオブジェクトのShow【ショー】メソッドを使用して、ブックが開いたときにユーザーフォームを表示させます。
ThisWorkbookモジュールの使い方手順
開発タブをクリックします。
「Visual Basic」ボタンをクリックします。
「ThisWorkbook」をクリックします。
ダウンリストボタンをクリックします。
Workbookを選択します。
ダウンリストボタンをクリックします。
「Open」を選択します。
Openイベントのプロシージャが自動で作成されます。
ここにコードを記述します。
Show【ショー】メソッド
ユーザーフォームを表示するには、UserForm【ユーザフォーム】コントロールオブジェクトのShow【ショー】メソッドを使用します。
Show【ショー】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Show[(Modal)]
- オブジェクト(必須)
ユーザーフォームコントロールオブジェクトのオブジェクト名を指定します。 - Modal【モーダル】(省略可能)
ユーザーフォームの表示状態をFormShowConstants列挙型の定数または、値で指定します。省略した場合は、既定値のvbModalが指定され、ユーザーフォーム以外の操作ができない。モーダル状態でユーザーフォームが開きます。定数 値 内容 vbModal
【ブイビーモーダル】0 エクセルの操作をできない状態にして
ユーザーフォームを開きます。vbModeless
【ブイビーモードレス】1 エクセルの操作ができる状態で
ユーザーフォームを開きます。
ブックが開いたときにユーザーフォーム1をモーダルで表示するコード例
Private Sub Workbook_Open() UserForm1.Show End Sub
ブックが開いたときにユーザーフォーム1をモードレスで表示するコード例
Private Sub Workbook_Open() UserForm1.Show vbModeless End Sub
StartUpPosition【スタートアップポジション】プロパティ
ユーザーフォームを表示する位置を指定するには、UserForm【ユーザフォーム】コントロールオブジェクトのStartUpPosition【スタートアップポジション】プロパティを使用します。
StartUpPosition【スタートアップポジション】プロパティの書式と設定値の説明
オブジェクト.StartUpPosition = 設定値
- オブジェクト(必須)
ユーザーフォームコントロールオブジェクトのオブジェクト名を指定します。 - 設定値(必須)
以下の表示場所を表す値を設定します。値 内容 0 Manual 初期値を設定しません。 1 CenterOwner ユーザーフォームが属する項目の中央 2 CenterScreen 画面全体の中央 3 WindowsDefault 画面の左上隅
画面の左上隅にモードレスでユーザーフォームを開くコード例
Private Sub Workbook_Open() UserForm1.StartUpPosition = 3 UserForm1.Show vbModeless End Sub
実行結果
指定したポイントにモードレスでユーザーフォームを表示するコード例
StartUpPositionが0の場合は、TopプロパティとLeftプロパティを使用して表示位置をポイント単位で指定できます。
Private Sub Workbook_Open() UserForm1.StartUpPosition = 0 UserForm1.Top = Application.Top + 300 UserForm1.Left = Application.Left + 700 UserForm1.Show vbModeless End Sub