【MOS】【Microsoft Office Excel】【マクロ/VBA】モードレスでフォームを開くマクロ
VBAでモードレスでユーザーフォームを開く方法は以下のとおりです。
「Add_Address_Form」というフォームを「Open_Add_Address_Form」というマクロで開くときの書き方です。
Showメソッドでフォームを開く
Sub Open_Add_Address_Form() '======================================== '住所追加フォームを開くマクロ '======================================== Add_Address_Form.Show '//フォームを開く End Sub
通常、Showメソッドでフォームを呼び出すと、呼び出したフォームが表示されている間は、フォームの操作以外の操作が出来ない状態になります。
例えば、フォーム以外のシート、セルの編集などはできません。
この状態を、モーダル(vbModal)といい、これがShowメソッドのデフォルト値です。
フォームを開くだけなら、上記2行目 Add_Address_Form.Show だけで十分です。
Showメソッドに vbModeless という引数を加えると、ユーザーフォームをより便利に利用できます。
モードレスでフォームを開く
フォームを開きながら、フォーム以外の操作をしたい場合、複数のフォームを使用したい場合などは、モードレス(vbModeless )を利用するとよいでしょう。
Sub Open_Add_Address_Form() '======================================== '住所追加フォームを開くマクロ '======================================== Add_Address_Form.Show vbModeless '//フォームを開く End Sub
Showメソッドに引数 vbModeless を加えると、
- ユーザーフォームを表示したまま選択しているセル範囲の内容を変更できます。
- 2つ以上のフォームを切り替えながら利用できます。
など、フォームをより便利に利用できます。