トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 2-3 タイプ別コントロールのプロパティを確認する

2-3 タイプ別コントロールのプロパティを確認するコントロール

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

目次  前頁   次頁  索引

項目

・キー操作でコントロールをクリックする
・コントロールの内容に応じてサイズを自動調整する
・コントロールの枠線を色変更し表示する
・コントロールの見出しを設定する
・コントロールのフォント・フォント色を設定する
・コントロール上のマウスアイコンを変更する
・コントロールに画像を設定する
・コントロールに設定した画像の位置やサイズを設定する
・コントロールに挿入した画像と見出しの位置を設定する
・コントロールの表示スタイルを変更する
・フォーカスが移る順番を指定する
・見出しやテキストの表示位置を設定する
・値を取得する
・テキストを折り返して表示する


キー操作でコントロールをクリックする

Acceleratorプロパティは、キー操作で、該当コントロールをクリックした状態にします。
Acceleratorプロパティには、通常キーボードのa~zの値を設定します。
実際の操作では、[Alt]キー+ Acceleratorプロパティに設定した値で、そのコントロールをクリック状態にします。

◇Acceleratorプロパティをメンバーに持つコントロール
Label / CheckBox / OptionButton / ToggleButton / CommandButton / MultiPage

◇プロパティウィンドウでの設定
直接値を入力します。


◇サンプルコード
フォームのインスタンスを生成する際に、コマンドボタン1のAcceleratorプロパティに「a」を設定 フォームが表示された状態で、[Alt]+[a]を押すとフォームの背景色が切り替わる

Private Sub UserForm_Initialize() 'フォームの初期化イベント
    CommandButton1.Accelerator = "a"
End Sub

Private Sub CommandButton1_Click() If Me.BackColor = &H8000000F Then Me.BackColor = &HC0C0FF Else Me.BackColor = &H8000000F End If End Sub



このプロパティを使用すると、フォーカスも該当のコマンドに移動します。
ラベルコントロールの場合は、タブオーダーの順番で、そのラベルの次のコントロールにフォーカスが移ります。

ページトップ


コントロールの内容に応じてサイズを自動調整する

AutoSizeプロパティは、見出しやテキスト全体を表示するために、オブジェクトのサイズを自動的に調整するかどうかを設定します。取得・設定できる値は次の2つです。
 ・True:自動で調整する
 ・False(既定):自動で調整しない

◇AutoSizeプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / CheckBox / OptionButton / ToggleButton / CommandButton / Image / RefEdit

◇プロパティウィンドウでの設定
リストから選択します。


◇サンプルコード①
フォームをクリックするとコマンドボタンのサイズが、見出しに合わせて自動で調整される

Private Sub UserForm_Click()
    CommandButton1.AutoSize = True
End Sub



◇サンプルコード②
テキストボックスの値入力に合わせてコントロールのサイズを自動調整に設定する

Private Sub UserForm_Initialize()
    TextBox1.AutoSize = True
End Sub


ページトップ


コントロールの枠線を色変更し表示する

BorderColorプロパティはコントロールの枠線の色を取得・設定します。
設定方法はユーザーフォームと同様です。
「1-14 枠線の色を変える」

BorderStyleプロパティは枠線の有無を取得・設定します。
設定方法はユーザーフォームと同様です。
「1-13 表示エリアに枠線を表示する」

◇BorderColor・BorderStyleプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / Frame / Imgae / RefEdit

◇プロパティウィンドウでの設定
リストから選択します。


◇サンプルコード
フォームをクリックすると、ラベルにピンク色の枠線を設定し表示する

Private Sub UserForm_Click()
    Label1.BorderColor = &HFF00FF
    Label1.BorderStyle = fmBorderStyleSingle
End Sub


ページトップ


コントロールの見出しを設定する

Captionプロパティは、コントロールの見出しを取得・設定します。

BorderStyleプロパティは枠線の有無を取得・設定します。
設定方法はユーザーフォームと同様です。
「1-13 表示エリアに枠線を表示する」

◇Captionプロパティをメンバーに持つコントロール
Label / CheckBox / OptionButton / ToggleButton / Frame / CommandButton / MultiPage

◇プロパティウィンドウでの設定
直接値を入力します。


◇サンプルコード
フォームをクリックすると、ラベルの見出しが変更される

Private Sub UserForm_Click()
    Label1.Caption = "平家物語"
End Sub


ページトップ


コントロールのフォント・フォント色を設定する

フォントに関するFont・ForeColorプロパティはユーザーフォームと同様です。
「1-19 追加するコントロールのデフォルトのフォントを設定する」

◇Fontプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / CheckBox / OptionButton / ToggleButton / Frame / CommandButton / TabStrip / RefEdit

◇ForeColorプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / CheckBox / OptionButton / ToggleButton / Frame / CommandButton / TabStrip / ScrollBar / SpinButton / RefEdit


コントロール上のマウスアイコンを変更する

マウスアイコンの表示に関するMouseIcon・MousePointerプロパティは、ユーザーフォームと同様です。
「1-21 フォーム上のマウスポインタの形を変更する」

◇MouseIcon・MousePointerプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / CheckBox / OptionButton / ToggleButton / Frame / CommandButton / TabStrip / ScrollBar / SpinButton / RefEdit


コントロールに画像を設定する

画像設定に関するPicture・プロパティはユーザーフォームと同様です。
「1-15 フォームの背景に画像を設定する」

◇Pictureプロパティをメンバーに持つコントロール
Label / CheckBox / OptionButton / ToggleButton / Frame / CommandButton / MultiPage / Image


コントロールに設定した画像の位置やサイズを設定する

画像表示設定に関するPicturePlignment・PictureSizeMode・PicureTilingプロパティは、ユーザーフォームと同様です。
「1-16 背景画像のサイズモードを設定する」
「1-17 背景画像の位置を設定する」
「1-18 背景画像を敷き詰める」

◇PicturePlignment・PictureSizeMode・PicureTilingプロパティをメンバーに持つコントロール
Frame / MultiPage / Image

ページトップ


コントロールに挿入した画像と見出しの位置を設定する

PicturePositionプロパティは、コントロールの見出しと画像の位置を取得・設定します。
設定できる値は0~12です。
既定は「7-fmPicturePositionAboveCenter」です。



◇PicturePositionプロパティをメンバーに持つコントロール
Label / CheckBox / OptionButton / ToggleButton / CommandButton

◇プロパティウィンドウでの設定
リストから選択します。

ページトップ


コントロールの表示スタイルを変更する

SpecialEffectプロパティは、コントロールの表示スタイルを変更します。
コントロールによって設定できる数は異なりますが、基本的には次の5つです。※


※チェックボックスとオプションボタンは設定できる値が2つになります。
 ・0-fmSpecialEffectFlat
 ・2-fmSpecialEffectSunken

◇SpecialEffectプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / CheckBox / OptionButton / Frame / Image / RefEdit


◇サンプルコード
フォームをクリックすると、テキストボックス1のスタイルがランダムに変更される

Private Sub UserForm_Click()
    Randomize
    Dim i As Long
    Do
        i = Int(Rnd() * 5)           'ランダムの値(0~4)を取得
        If i = 4 Then i = 6          '4の場合は6に変更
    Loop Until TextBox1.SpecialEffect <> i '現スタイルと異なる値の場合は
    TextBox1.SpecialEffect = i             'ループを抜ける
End Sub

ページトップ


フォーカスが移る順番を指定する

TabIndex・TabStopプロパティは、[Tab]キーや[Enter]キーでの、フォーカス移動順の設定に用います。
フォーム上のフォーカスの順番は0からはじまり、その後は1,2,3…のように正の整数が一つずつ増えていく形になります。
コントロールが3つあるフォームの場合は、挿入順に0,1,2と自動で値が振られます。

TabIndex・TabStopプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / CheckBox / OptionButton / ToggleButton / Frame / CommandButton / TabStrip / ScrollBar / SpinButton / RefEdit

◇「タブオーダー(TabIndex)」の変更
VBEのフォームオブジェクト上の、コントロールのない場所で右クリックすると、メニューが表示されるので「タブオーダー」を選択します。


タブオーダーダイアログが表示されるので、コントロールを選択し、メニューのボタンで上・下に移動します。
フォーカスが上のコントロールから下のコントロールの順に移動します。

※ プロパティウィンドウに直接数値を入力することで設定する方法もあります

◇[Tab]キーや[Enter]キーでのフォーカス移動を制限する
[Tab]キーや[Enter]キーでフォーカスを移したくないコントロールがある場合は、TabStopプロパティの値をFalseに設定します。
TabStopプロパティに設定できる値は次の2つです。
 ・True(既定):Tab操作を有効
 ・False:Tab操作を無効

Labelコントロールはフォーカスを受けとれません。ラベルのTabStopプロパティは初期値でFalseですが、この値をTrueすると、そのラベルにフォーカスが移るタイミングで、タブオーダーが次のコントロールにフォーカスが移ります。

ページトップ


見出しやテキストの表示位置を設定する

TextAlignプロパティは、見出しやテキストの表示位置を取得・設定します。設定できる値は次の3つです。
 ・1-fmTextAlignLeft:左揃え
 ・2-fmTextAlignCenter:中央揃え
 ・3-fmTextAlignRight:右揃え

◇TextAlignプロパティをメンバーに持つコントロール
Label / TextBox / ComboBox / ListBox / CheckBox / OptionButton / ToggleButton

◇プロパティウィンドウでの設定
リストから選択します。


◇サンプルコード
フォームをクリックすると、フォーム上の全てのTextBoxコントロールを中央揃えにする

Private Sub UserForm_Click()
    Dim myCtrl As MSForms.Control
    For Each myCtrl In Me.Controls
        If TypeName(myCtrl) = "TextBox" Then
            myCtrl.TextAlign = fmTextAlignCenter
        End If
    Next
End Sub


ページトップ


値を取得する

Valueプロパティは、該当コントロールの値を取得・設定します。
マルチページとタブストリップでは、ページの取得・ページの選択になります。
設定できる値はコントロールによって異なります。

◇Valueプロパティをメンバーに持つコントロール
TextBox / ComboBox / ListBox / CheckBox / OptionButton / ToggleButton / TabStrip / MultiPage / ScrollBar / SpinButton / RefEdit

:Valueプロパティに設定できる値が「True」または「False」のコントロール(「NULL」を含む)
:Valueプロパティに設定できる値が、数値のコントロール

◇サンプルコード
コマンドボタンをクリックすると、テキストボックス、チェックボックス、スクロールバーの値を取得

Private Sub CommandButton1_Click()
    Dim strValue(2) As String
    strValue(0) = TextBox1.Value
    strValue(1) = CheckBox1.Value
    strValue(2) = ScrollBar1.Value
    MsgBox Join$(strValue, vbLf)
End Sub


ページトップ


テキストを折り返して表示する

WordWrapプロパティは、見出しやテキストがコントロールの幅を超えたときに、折り返して表示するかを設定します。
取得・設定できる値は次の2つです。
 ・True:折り返し表示する
 ・False(既定):折り返し表示しない

◇WordWrapプロパティをメンバーに持つコントロール
Label / TextBox / CheckBox / OptionButton / ToggleButton / CommandButton / RefEdit

◇プロパティウィンドウでの設定
リストから選択します。

◇サンプルコード
フォームをクリックすると、Labelのテキストを折り返して表示する

Private Sub UserForm_Click()
    Label1.WordWrap = True
End Sub



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

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

■ 購入:amazon

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