教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーム表示中の操作制限を設定する方法

構文

構文は以下の通りです。

モーダル表示
フォーム名.Show vbModal

解説

フォーム名には、モーダル表示にするフォームの名前を記述します。モーダル表示(vbModal)は、フォームが表示されている間は他の操作を一切行うことができません。つまり、ユーザーはフォームを閉じるまで他のセルやボタンをクリックすることができません。

モードレス表示
フォーム名.Show vbModeless

解説

フォーム名には、モードレス表示にするフォームの名前を記述します。モードレス表示(vbModeless)は、フォームが表示されている間でも他の操作を行うことができます。つまり、フォームが表示されている状態でも、ユーザーは他のセルやボタンを操作することができます。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)モーダル表示

Sub モーダル表示サンプル()
    ' UserForm1をモーダルで表示する
    UserForm1.Show vbModal
End Sub

上記のプログラムは、フォームをモーダル表示にする内容です。

(例2)モードレス表示

Sub モードレス表示サンプル()
    ' UserForm1をモードレスで表示する
    UserForm1.Show vbModeless
End Sub

上記のプログラムは、フォームをモードレス表示にする内容です。

まとめ

フォームを表示している状態で他の操作ができるかどうかを設定するには、フォームの表示方法をモーダル(vbModal)またはモードレス(vbModeless)で指定することが重要です。モーダル表示は他の操作をブロックし、モードレス表示は他の操作を許可します。目的に応じて適切な表示方法を選択することで、ユーザーの操作体験をコントロールすることができます。