← コード一覧へ戻る
基本UserForm

UserFormを隠す

Hideで入力を残してフォームを一時的に隠し、同じフォームを再表示します。最後にUnloadで解放します。

実行前に確認

  • 実験中は×ではなく「一時的に隠す」を使ってください。×で閉じるとUnloadされ、入力保持を比較できません。
  • Hideは保存ではありません。Excelの終了やコードのリセットを越えて入力は残りません。
  • コードと公式仕様を照合した学習用の例です。Excel実機での実行確認は行っていません。

1サンプルコード

'【貼付先1:UserForm1 のコードモジュール】
Option Explicit

Private Sub UserForm_Initialize()
    Me.CommandButton1.Caption = "一時的に隠す"
End Sub

Private Sub CommandButton1_Click()
    Me.Hide
End Sub

'【貼付先2:標準モジュール。ここから下は別の場所へ】
Option Explicit

Public Sub HideAndShowDemo()
    Dim frm As UserForm1
    Set frm = New UserForm1
    frm.Show vbModal
    MsgBox "次に同じフォームを再表示します。"
    frm.Show vbModal
    Unload frm
    Set frm = Nothing
End Sub

図で見る一時非表示と再利用

イメージ図

Hideで入力を残してフォームを一時的に隠し、同じフォームを再表示します。最後にUnloadで解放します。

  1. 入力

    TextBox1に「途中」を入力

  2. HideとShow

    同じfrmを隠して再表示する

  3. 確認と終了

    入力が残ることを確認してUnload

各操作は、このガイドに指定されたフォームのコードで行います。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[ユーザーフォーム]で、名前がUserForm1の空のフォームを用意します。各例は別々に試します。

  2. 2

    TextBoxを1個(TextBox1)、CommandButtonを1個(CommandButton1)配置します。

  3. 3

    「貼付先1」の部分だけをUserForm1のコードへ、「貼付先2」の部分を標準モジュールへ貼ります。Option Explicitは各モジュールの先頭に置きます。

  4. 4

    標準モジュールのHideAndShowDemoを実行し、TextBox1に「途中」と入力して「一時的に隠す」を押します。

  5. 5

    メッセージを閉じると再表示され、「途中」が残っています。再度「一時的に隠す」を押すと最後にUnloadされます。

使っている機能の公式ドキュメント(Microsoft Learn)