マクロ講座ユーザーフォーム表示中にセルを選択

ユーザーフォーム表示中にセルを選択
ユーザーフォーム表示中にセルを選択

フォームのモーダルとモードレスについて説明します。マクロ 43回

「モーダル」と「モードレス」

古いエクセル(Excel97まで)では、ユーザーフォームを起動している時はシートの操作等ができませんでした。この状態が「モーダル」。
Excel2000以降で、ユーザーフォームが起動中でもシート等の操作が出来る設定「モードレス」が追加されました。
つまり、 「モーダル」は、現在の設定状況から次にどう操作するかをユーザーは選べません。ユーザーフォームオンリー
モードレスであれば、ユーザーは自由な順序で作業を行うことができます。シートの操作、メニューなど。
デフォルトの設定では「モーダル」設定です。

モーダル(Modal)、モードレス(Modeless)の切り替え

  1. モーダル(Modal)、モードレス(Modeless)の切り替えは、プロパティウィンドウから、簡単に行うことができます。
    ユーザーフォームのプロパティウインドウを表示し、全体タブのShowModalを選択します。

    ユーザーフォーム表示中にセルを選択、タイトル01
  2. モードレスにしたい場合はプロパティウィンドウのShowModalプロパティをFalseに設定します。
    True (既定) ではユーザーフォーム は作業ウィンドウ固定です。
    False ではユーザーフォーム はモードレスです。

    ユーザーフォーム表示中にセルを選択、タイトル02
  3. もう一つの方法としてメソッドの引数を利用するという方法があります。
    これはコードにこのようにShowメソッドの引数にvbModelessを記述してください。

    ユーザーフォーム表示中にセルを選択、タイトル03
  4. Showメソッドの引数には、vbModalとvbModelessのどちらかを指定します。省略すると規定地のモーダル(Modal)になります。
    数値でモードレスに指定する場合は、UserForm1.Show 0 のように記述します。

    ユーザーフォーム表示中にセルを選択、タイトル04
    Sub Form_Show()
        UserForm1.Show 0 ’vbModelessにする
    End Sub
    
    
  5. ユーザーフォームをモードレスで起動したので、シートに入力ができる。

    ユーザーフォーム表示中にセルを選択、タイトル05