トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 1-3 セルを選択できる状態で表示する

1-3 セルを選択できる状態で表示するユーザーフォーム

次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」

目次  前頁   次頁  索引

ユーザーフォームの表示形式には「モーダル」と「モードレス」があります。
フォームの表示中に、セル等他のオブジェクトを選択できる表示形式は「モードレス」です。

モーダル(Modal)

モーダル表示は、ユーザーフォームが表示されている間、他のユーザーフォームや、シートを操作できない設定です。 デフォルトでは「モーダル」設定になっています。


モードレス(Modeless)

モードレス表示は、ユーザーフォームが表示されていても、シートや他のユーザーフォームを選択・操作できます。

◇モードレスの設定
フォームをモードレスで表示するには、次の2つのうちどちらかを実行します。

●プロパティウィンドウ(次図赤枠部)のShowModalプロパティをFalseに設定
ShowModalプロパティをFalseに設定しておくと、Showメソッドで引数を指定する必要はありません。


●Showメソッドの引数を利用
コードに記述するShowメソッドの引数にvbModelessを設定します。


サンプルコード


Sub Form_Show()
    UserForm1.Show vbModeless
End Sub

モードレス状態で、セルや他のオブジェクトを選択・操作すると、フォームは非アクティブになります。
アクティブか、非アクティブかは、フォームのタイトルバーの文字色で確認ができます。
非アクティブ状態では、文字色が薄いグレーになります。


vbModalとvbModelessのマクロの挙動の違い

モーダル表示とモードレス表示では、Showメソッドの挙動が異なるため注意が必要です。
モーダル表示の場合は、フォームを閉じた後に続きのマクロを実行します。
一方モードレス表示だと、フォームの表示後、続きのマクロが実行されます。

Sub Form_Show_Modal()
    UserForm1.Show vbModal
    MsgBox "モーダル!" 'フォームを閉じたら実行される
End Sub

Sub Form_Show_Modeless() UserForm1.Show vbModeless MsgBox "モードレス!" 'フォーム表示に続き実行される End Sub

【例】「Form_Show_Modeless」の実行結果


【補足情報】vbModal/vbModeless

Showメソッドの引数として設定できるのは、vbModalとvbModelessです。
メソッドの引数を省略すると、既定であるvbModalになります。
vbModal/vbModelessはテキストとして記述しますが、その実体は数値です。
vbModalの実体は「1」で、vbModelssの実体は「0」になります。

次のように、メッセージボックスやDebug.Print等で出力すると、実体の値を確認できます。
【例】vbModalの実体を確認

Sub Confirm()
    MsgBox vbModal 'Debug.Print vbModal
End Sub

【補足情報】組み込み定数

前述のようなvb○○といった形ではじまるものは、組み込み定数と呼ばれています。
vbから始まる組み込み定数は、VB(VBA)に定義されており、その実体は主に数値になります。
引数やプロパティに設定する数値を、それぞれ覚えることは困難なため、定数として意味のわかる形にしているのです。

そのような仕組みのため、引数やプロパティに値を設定する場合に、組み込み定数の実体の数値を直接指定することも可能です。
【例】vbModelssを数値で設定

Sub Form_Show()
    UserForm1.Show 0
End Sub

VBAで扱える組み込み定数は、vb○○の他に、次のもの等があります。
・xl○○ : Exceアプリケーションに定義されている
・fm○○ : フォームに定義されている
・mso○○ : マイクロソフトオフィスに定義されている

[ MSDN VBA組み込み定数一覧 ]


書籍紹介140以上のサンプルファイル付き!

知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。

■ 購入:amazon

ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.