Excel VBAでユーザーフォームを全画面表示する4つの簡単な方法
作成したユーザーフォームが大きすぎて、限られたスペースに多くの情報が詰め込まれてしまうことはよくあります。情報が窮屈に配置されると、ユーザーフォーム全体の見やすさや操作性が損なわれてしまいます。Excel VBAを使ってユーザーフォームを全画面表示したいとお考えの方は、ぜひ本記事をご参考ください。この記事では、VBAでユーザーフォームを全画面表示する方法を、詳しい解説とともにご紹介します。
VBAでユーザーフォームを全画面表示する4つの方法
ここからは、以下のデータセットを使って、Excel VBAでユーザーフォームを全画面表示する方法を順番に解説していきます。なお、マクロを使用するため、ファイルは通常のxlsx形式ではなく、xlsm形式(マクロ有効ブック)で保存する必要がありますのでご注意ください。

方法1: xlMaximized を使う
まずは、以下のVBAコードを使って、ユーザーフォームを手間なく全画面表示する方法をご紹介します。
手順
- まず、リボンの「開発」タブをクリックし、「Visual Basic」を選択します。

- Visual Basicエディターが開いたら、「挿入」をクリックします。
- 次に、ドロップダウンメニューから「ユーザーフォーム」を選択します。

- 四角形のウィンドウ(フォーム)が表示されます。
- 「プロパティ」ウィンドウでは、フォームの名前変更やキャプション(タイトル)の設定が可能です。
- このフォーム上には、テキストボックス、ボタン、チェックボックスなどのさまざまなコントロールを追加し、シートと連携させることができます。

- 次に、フォームをダブルクリックします。
- コードエディター画面が開くので、そこに以下のコードを貼り付けてください。
Private Sub UserForm_Activate()
Application.WindowState = xlMaximized
With Application
Me.Top = .Top
Me.Left = .Left
Me.Height = .Height
Me.Width = .Width
End With
End Sub

- コードを入力したら、「保存」アイコンをクリックし、その後ユーザーフォームをダブルクリックします。
- 再びユーザーフォームの編集画面に戻ります。
- ここでは説明用として、フォームにいくつかのコントロールを追加してみましょう。
- 今回はテキストボックスとコマンドボタン、および入力欄を配置しました。
- 準備ができたら、画像の矢印で示した「実行」ボタンをクリックします。

- 「実行」をクリックすると、ユーザーフォームが起動します。
- 実行後、下の画像のように、ユーザーフォームが画面いっぱいに表示されていることが確認できます。

🔎 VBAコードの解説
- まず、オブジェクトとしてUserformを、プロシージャとしてActivate(フォームがアクティブになったときに発生するイベント)を選択しています。
- 次の行のWindowStateは、現在実行中のアプリケーションウィンドウの状態を表すプロパティです。ここにxlMaximizedを設定することで、アプリケーションのウィンドウが最大化されます。
- 続く行で、アプリケーションウィンドウを指定します。
- そして、Top・Left・Height・Width の4行により、フォームを上下左右それぞれの方向に最大化させる位置とサイズを設定しています。
- 最後に、Withステートメントを終了し、サブプロシージャを閉じて完了です。
方法2: 高さと幅を調整する
次に、以下のVBAコードを使って、ユーザーフォームを全画面表示する方法を見ていきましょう。
手順
- まず、「開発」タブをクリックし、「Visual Basic」を選択します。

- Visual Basicエディターが開いたら、「挿入」をクリックします。
- ドロップダウンメニューから「ユーザーフォーム」を選択します。

- 四角形のフォームウィンドウが表示されます。
- 「プロパティ」ウィンドウで、フォーム名やキャプションを設定できます。
- このフォームには、図形、ボタン、チェックボックスなどを自由に追加し、ワークシートと連携させることができます。

- フォームをダブルクリックして、コードエディターを開きます。
- エディターに以下のコードを貼り付けてください。
Private Sub UserForm_Activate()
Me.Height = Application.Height
Me.Width = Application.Width
Me.Left = Application.Left
Me.Top = Application.Top
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
Application.WindowState = xlMaximized
End Sub

- コードを入力したら「保存」アイコンをクリックし、ユーザーフォームをダブルクリックして編集画面に戻ります。
- 説明用として、フォームにテキストボックスやコマンドボタン、入力欄などを配置します。
- 準備ができたら、画像の「実行」ボタンをクリックしましょう。

- 「実行」をクリックすると、ユーザーフォームが起動します。
- 実行後、下の画像のように、ユーザーフォームが画面全体に表示されていることがわかります。

🔎 VBAコードの解説
- まず、オブジェクトとしてUserformを、プロシージャとしてActivateを選択しています。
- 続く4行では、アプリケーションウィンドウの高さ・幅・左位置・上位置の各値を取得し、それぞれ Me.Height、Me.Width、Me.Left、Me.Top に代入しています。
- その後、サブプロシージャを終了します。
- 次に、オブジェクトとしてUserformを、プロシージャとしてInitialize(フォームが初期化されるときに発生するイベント)を選択しています。
- この中の WindowState = xlMaximized の行により、アプリケーションウィンドウが最大化され、結果としてフォームも全画面表示になります。
- 最後に、サブプロシージャを終了してコードは完成です。
方法3: Withステートメントを使う
以下のVBAコードでは、Withステートメントを活用して、小さなユーザーフォームを全画面表示に変換します。
手順
- まず、「開発」タブをクリックし、「Visual Basic」を選択します。

- Visual Basicエディターが開いたら、「挿入」→「ユーザーフォーム」の順に選択します。

- 四角形のフォームウィンドウが表示されます。
- 「プロパティ」ウィンドウで、フォーム名やキャプションを変更できます。
- フォーム上には、図形、ボタン、チェックボックスなどさまざまなコントロールを追加し、シートと連携できます。

- フォームをダブルクリックし、コードエディターに以下のコードを貼り付けます。
Private Sub UserForm_Initialize()
With Fullscreen_form_3
.Height = Application.Height
.Width = Application.Width
End With
End Sub

- コードを入力したら「保存」アイコンをクリックし、ユーザーフォームをダブルクリックして編集画面に戻ります。
- 説明用として、フォームにテキストボックス、コマンドボタン、入力欄などを配置します。
- 準備ができたら、画像の「実行」ボタンをクリックします。

- 「実行」をクリックすると、ユーザーフォームが起動します。
- 実行後、下の画像のように、ユーザーフォームが画面いっぱいに広がっていることが確認できます。

🔎 VBAコードの解説
- まず、オブジェクトとしてUserformを、プロシージャとしてInitializeを選択しています。
- 次の行で、対象となるユーザーフォーム(Fullscreen_form_3)をWithステートメントで指定します。
- その中で、アプリケーションウィンドウの高さと幅を、それぞれ .Height と .Width に代入しています。
- 最後に、Withステートメントとサブプロシージャを終了して完成です。
方法4: 変数を使う
最後にご紹介するのは、変数を活用して小さなユーザーフォームを全画面表示に拡張するVBAコードです。
手順
- まず、「開発」タブをクリックし、「Visual Basic」を選択します。

- Visual Basicエディターが開いたら、「挿入」→「ユーザーフォーム」の順に選択します。

- 四角形のフォームウィンドウが表示されます。
- 「プロパティ」ウィンドウで、フォーム名やキャプションを設定できます。
- フォーム上には、図形、ボタン、チェックボックスなどを追加し、シートと連携させることが可能です。

- フォームをダブルクリックし、コードエディターに以下のコードを貼り付けます。
Private Sub UserForm_Initialize()
Dim xlws As XlWindowState
xlws = Application.WindowState
Application.WindowState = xlMaximized
With Fullscreen_form_4
.Top = Application.Top
.Left = Application.Left
.Width = Application.Width
.Height = Application.Height
.Show
End With
Application.WindowState = xlws
End Sub

- コードを入力したら「保存」アイコンをクリックし、ユーザーフォームをダブルクリックして編集画面に戻ります。
- 説明用として、フォームにテキストボックス、コマンドボタン、入力欄などを配置します。
- 準備ができたら、画像の「実行」ボタンをクリックします。

- 「実行」をクリックすると、ユーザーフォームが起動します。
- 実行後、下の画像のように、ユーザーフォームが画面全体に表示されていることがわかります。

🔎 VBAコードの解説
- まず、オブジェクトとしてUserformを、プロシージャとしてInitializeを選択しています。
- 次の行では、XlWindowState型の変数として xlws を宣言しています。
- 続く行で、現在のアプリケーションウィンドウの状態を xlws に退避(保存)しています。
- WindowState に xlMaximized を設定することで、アプリケーションのウィンドウが最大化されます。
- その後、Withステートメントでフォームを指定し、Top・Left・Width・Height の4行によって、フォームを上下左右すべての方向に最大化させています。
- さらに .Show メソッドでフォームを表示し、処理の最後に元のウィンドウ状態(xlws)へ復元しています。
- 最後に、サブプロシージャを終了してコードは完成です。
まとめ
今回は、ユーザーフォームを全画面表示する方法について、4種類のVBAマクロコード例を使って解説しました。どのコードも処理速度は非常に高速ですが、VBAマクロを扱うには、ある程度のVBAに関する基礎知識が必要になります。
練習用として、これらの方法を実際に試せるマクロ有効ブックを用意していますので、ぜひ活用してください。
ご質問やフィードバックがございましたら、お気軽にコメント欄からお寄せください。コミュニティの改善につながるご提案も歓迎いたします。
-
Excelで階層を作成する3つの簡単な方法|SmartArt・ピボットテーブル・Power Pivot
Excelにおける「階層(ヒエラルキー)」には、大きく分けて2つの意味があります。1つ目は、組織図のように階層構造を視覚的に表現するためのチャートのことです。もう1つはPower Pivotの階層機能で、こちらは表の中にネストされた複数の列をまとめ、ワンクリックでドリルダウン(展開)やドリルアップ(折りたたみ)を素早く行えるようにするものです。 この記事では、Excelで階層を作成する3つの方法を、手順付きでわかりやすく解説します。 Excelで階層を作成する3つの便利な方法 本記事では、Excelで階層を作成する3つの簡単な方法をご紹介します。まずSmartArt機能を使った視
-
Excelでアンケートを作成する2つの簡単な方法【手動入力とVBA】
この記事では、Excelでアンケート(質問票)を作成する方法を解説します。アンケートとは、質問や特定の項目に対して選択肢を設け、回答者から情報を収集するためのツールです。Excelを使えば、いくつかの簡単な手順だけで誰でもアンケートを作成できます。本記事では2つの簡単な方法をご紹介します。これらの方法をマスターすれば、Excelでのアンケート作成がぐっと楽になります。それでは早速始めましょう。 練習用ワークブックはこちらからダウンロードできます。 Excelでアンケートを作成する2つの方法 Excelでアンケートを作成するには、主に2つの方法があります。 1つ目の方法は、手動でアンケートを作成