Excel VBA ブックを開いたときにユーザーフォームを表示する

スポンサーリンク
スポンサーリンク

ブックを開いた時にユーザーフォームを表示する方法

UserForm1という名前の
ユーザーフォームがあることを前提で解説します。

ユーザーフォームを表示するメソッド

ユーザーフォームを表示する際には、Show(ショー)メソッドを使います。

ユーザーフォームの表示方法は2種類あります。

  1. モーダルで表示
  2. モードレスで表示

1.モーダルで表示の場合は、ユーザーフォームを閉じるまで
エクセルのシート操作はできません。


【コード例】
UserForm1.Show vbModal


2.モードレスの場合は、ユーザーフォームを開いた状態でも
エクセルシートの操作がおこなえます。


【コード例】
UserForm1.Show vbModeless


未指定の場合はモーダル(シート操作不可)で表示されます。

ブックが開いたときに表示させる方法

ブックが開いたときにユーザフォームを表示させるには
「ThisWorkbook」モジュール内に「Open」イベントを記述します。


【モーダルの場合コード】

Private Sub Workbook_Open()
UserForm1.Show 
End Sub

モーダルの場合は既定値なので 「vbModal」プロパティは省略可です。


【モードレスの場合コード】

Private Sub Workbook_Open()
UserForm1.Show vbModeless
End Sub

ThisWorkbookモジュールの使い方手順

開発タブをクリックします。
「Visual Basic」ボタンをクリックします。



「ThisWorkbook」をクリックします。



ダウンリストボタンをクリックします。



Workbookを選択します。



ダウンリストボタンをクリックします。

「Open」を選択します。

Openイベントのプロシージャが自動で作成されます。

ここにコードを記述します。



ユーザーフォーム表示位置の設定

ユーザーフォームの表示位置はStartUpPosition(スタートアップポジション)
メソッドを使います。

プロパティに以下の表の値を設定します。

StartUpPositionプロパティ値一覧表

設定内容
Manual
(マニュアル)
0初期設定値を指定しません。
CenterOwner
(センターオーナー)
1(既定値)UserForm が属する項目の中央。
CenterScreen
(センタースクリーン)
2画面全体の中央
WindowsDefault
(ウインドウデフォルト)
3画面の左上隅

コード例

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

実行結果

ユーザーフォームを表示してブックを非表示にする方法

Application(アプリケーション)オブジェクトのVisible(ビジブル)プロパティの
値をFalse(フォルス)にするとブックが非表示になります。
True(トゥルー)を指定すると表示されます。

コード例

Private Sub Workbook_Open()
UserForm1.Show 
Application.Visible = Fals
End Sub

以上でブックを開いたときにユーザーフォームを表示する方法の解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク