エクセル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でユーザーフォームを開く、閉じる