ExcelVBA技
ユーザーフォーム
E13U005
E13U005 (Excel2000~2013)
ユーザーフォームコントロールの見落としやすいプロパティ
ユーザーフォームのコントロールには多くのプロパティがあります。 多いだけに見落としがちな必須プロパティのメモです。
TextBox Locked プロパティ コントロールを編集可能にするかどうかを設定します。 Trueにすると表示されたまま編集ができないようにします。 カット&コピーなどのショートカットキーは使えます。 PasswordChar プロパティ 実際に入力された文字の代わりにプレースホルダ文字を表示します。 プレースホルダ:セキュリティ上の理由から他の文字の代わりに使われる文字。 例えばユーザーがパスワードを入力すると入力された文字の代わりにアスタリスク(*)が表示されます。 EnterKeyBehavior プロパティ Trueにすると[Enter]キーで改行します。 但し、MultiLineプロパティがTrueの場合に限り適用されます。 TabKeyBehavior プロパティ Trueにすると[Tab]キーが入力出来ます。 但し、MultiLineプロパティがTrueの場合に限り適用されます。 SelectionMargin プロパティ 文字列の左側の余白部分をクリックすると、その行の文字列を選択できるようにするかどうかを設定します。 Falseにすると左端の隙間を無くし文字列を表示できます。 (TextBox、ComboBox) ShowDropButtonWhen プロパティ (TextBoxでは非表示メンバ) 右端の下向き矢印(DropButton)の表示を制御します。 定数 値 内容 fmShowDropButtonWhenNever 0 DropButtonはどの状況下でも表示しません。 fmShowDropButtonWhenFocus 1 コントロールにフォーカスがあるときにDropButtonを表示します。 fmShowDropButtonWhenAlways 2 DropButtonを常に表示します。 TextBoxにもDropButtonを表示する事が出来ます。 (TextBox、ComboBox) ComboBox Style プロパティ fmStyleDropDownList 2 にするとリストから値を選択しなければなりません。 任意の文字は入力出来なくなります。 ListWidth プロパティ リスト部分の幅を設定します。 リスト幅をComboBox幅と同じにしてスクロールバーを出さいようにするにはListWidthとColumnWidths プロパティをWidthプロパティと同じにします。 ListBox ColumnCount プロパティ 列の数を設定します。 列の幅を設定するときは ColumnWidthsプロパティを使います。 ColumnWidthsに0を設定すると列を非表示にすることができます。 ListStyle プロパティ fmListStyleOption 1 にすると複数の選択ができるオプションボタン又はチェックボックスを表示します 。 MultiSelect プロパティ 複数選択を許可するかどうかを設定します。 選択されている項目を調べるにはSelected プロパティを使います。 For ii = 0 To Me.ListBox1.ListCount - 1 If ListBox1.Selected(ii) = True Then Debug.Print ListBox1.List(ii) End If Next CommandButton TakeFocusOnClick プロパティ Falseにするとクリックされてもフォーカスを取得しません。フォーカスは元のコントロールに留まります。 MultiPage Style プロパティ Tabsのスタイルを設定します。 fmTabStyleButtons 1 タブ バーにボタンを表示します fmTabStyleNone 2 タブ バーを表示しません 各種ウイザードはfmTabStyleNoneが用いられます。 Value プロパティ 現在アクティブなページを表す整数値を表します。取得、設定が出来ます。1ページ目は0です。 MultiPage1.Value = 1 '2ページ目に切り替え Image Enabled プロパティ フォーカスを取得できるかどうか、及びイベントに応答するかどうかを設定します。 Trueのままだと不都合が発生する可能性大です。イベントを用いなければFalseにしておくのが必須です。 イベントを用いる場合はRepaintメソッドでの再描画が必須です。 RepaintがないとWindows再描画がされるまで固まってしまいます。 Private Sub Image1_Click() Image1.Picture = LoadPicture("xxx.png") Me.Repaint 'お呪いのRepaintメソッドが必須 End Sub