エクセルVBAで起動時にユーザーフォームのみ表示する!自動でフォームが開く

エクセルVBAでソフトを作成する時に、起動時にユーザーフォームのみ表示させると、見栄えもいいし、エクセル技術のランクがぐっと上がります。単純に、ユーザーフォームだけ表示させることもできますが、ソフトの構成が、ユーザーフォームやワークシートがあった場合、ワークシートまで表示されしまいます。ここでは、ファイルを開いた時に、ユーザーフォームだけを表示させて、エクセル本体を表示させない方法を紹介しています。ですが、そのままエクセル本体を非表示のままにしておくと、ワークシートが表示されなくなってしまします。なので、ユーザーフォームを閉じると、ワークシートが表示されるようにします。具体的に、どのようにVBAを作成したらいいか、分かりやすく説明しています。すぐ使えるコードを記載しています。

 

 

ファイルを開いた時にユーザーフォームを表示

エクセルを起動させた時に、ユーザーフォームを表示させるようにします。

標準モジュールにVBAを作成

標準モジュールに、記述した場合のコードです。ユーザーフォーム名は、「UserForm1」です。

Sub Auto_Open()
UserForm1.Show
End Sub

ユーザーフォーム名が「メニュー」の場合は、次のように記述しましょう。

Sub Auto_Open()
メニュー.Show
End Sub

標準モジュールとは

エクセルVBEの「挿入」タブ→「標準モジュール」をクリックすると、標準モジュールが作成できます。

標準モジュールにコードを記述する場合は、Sub Auto_Open() になります。

 

 

ThisWorkbookにVBAを作成

ThisWorkbook に、記述した場合のコードです。ユーザーフォーム名は、「UserForm1」です。

Private Sub Workbook_Open()
UserForm1.Show
End Sub

ユーザーフォーム名が「メニュー」の場合は、次のように記述しましょう。

Private Sub Workbook_Open()
メニュー.Show
End Sub

ThisWorkbookとは

エクセルVBEの「プロジェクト」に表示されています。

ThisWorkbook をダブルクリックして、Private Sub Workbook_Open() にコードを記述しましょう。

 

 

ユーザーフォームだけ表示してエクセル本体を非表示

エクセルでソフトを作成するときに、ソフトがユーザーフォームとワークシートで構成されている時、エクセル本体を非表示にする必要があります。

エクセル本体を非表示にしないと、ユーザーフォームを表示するVBAを作成しても、ユーザーフォームだけでなく、ワークシートも表示されてしまいます。

エクセルを起動時に、ユーザーフォーム「メニュー」だけを表示して、エクセル本体を非表示にする場合です。

ユーザーフォームが表示された時、エクセル本体を非表示にする

エクセル起動時に、ユーザーフォーム「メニュー」だけを表示して、エクセル本体を非表示にするコードです。

ユーザーフォーム「メニュー」を選択して、「コードの表示」をクリック。または、フォーム「メニュー」をダブルクリックして、コードを記述しましょう。

Private Sub UserForm_Initialize()
Application.Visible = False
End Sub

ユーザーフォームを閉じた時、エクセル本体を表示にする

ユーザーフォームを閉じた時に、エクセル本体を表示しないと、ワークシートが表示されなくなります。

ユーザーフォーム「メニュー」を閉じた時に、エクセル本体を表示するコードです。フォーム「メニュー」に記述しましょう。

Private Sub UserForm_Terminate()
Application.Visible = True
End Sub

 

 

ファイルを起動時にユーザーフォームのみ表示

エクセルを起動させた時に、ユーザーフォームのみを表示させるサンプルです。

フォームだけを表示させる(サンプル)

ファイルを起動したときに、ユーザーフォーム「メニュー画面」だけ開いて、エクセル本体を非表示にし、「メニュー画面」を閉じた時、エクセル本体を表示させます。

それには、次の①、②のVBAを作成します。

① 標準モジュールに、ユーザーフォームを開くコードを記述。

Sub Auto_Open()
メニュー画面.Show
End Sub

② ユーザーフォーム「メニュー画面」に、エクセル本体を表示、非表示にするコードを記述。

Private Sub UserForm_Initialize()
Application.Visible = False
End Sub

Private Sub UserForm_Terminate()
Application.Visible = True
End Sub

以上で、ファイルを起動させると、ユーザーフォーム「メニュー」だけが開いて、エクセル本体は非表示になります。ソフトの構成にワークシートがある場合は、フォームが閉じられると、ワークシートも表示されるようになります。

ユーザーフォームの表示、非表示

エクセルでは、起動時にユーザーフォームが表示されるソフトはよく見かけます。というよりも、ほとんどがそのような構成になっています。エクセルVBAの初心者にとっては、エクセル起動時に、VBAでユーザーフォームのみ表示させることは、ソフト作成の入り口です。エクセルVBAは、慣れるとそんなに難しくありません。まずは、エクセルでユーザーフォームを作成して、コードを記述して、VBAを実行させてみましょう。思い通りに実行されると、楽しくなります。

こちらの記事もご覧ください。⇒エクセルVBAでユーザーフォームを開く、閉じる