トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 2-1 基本的なコントロールに共通のプロパティを確認する

2-1 基本的なコントロールに共通のプロパティを確認するコントロール   2021.11.16

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

目次  前頁   次頁  索引

デフォルトのツールボックス内全てのコントロールに共通するプロパティは次の通りです。
・BackColorプロパティ 背景色の設定
・ControlTipTextプロパティ ツールチップを設定
・Enabledプロパティ コントロールの有効・無効設定
・Heightプロパティ コントロールの高さ設定
・Leftプロパティ コントロールの水平位置設定
・Tagプロパティ プログラマが自由な値を設定
・Topプログラム コントロールの垂直位置設定
・Visibleプロパティ コントロールの表示・非表示設定
・Widthプロパティ コントロールの幅設定


コントロールの背景色を設定する

ユーザーフォームと同様です。
「1-12 フォームの背景色を設定する」


ツールヒントを設定する

ControlTipTextプロパティはツールチップ(ツールヒント)を取得・設定できます。
設定はプロパティウィンドウに直接文字列を入力します。
例として、テキストボックス1のControlTipTextプロパティに値を設定します。


フォームを表示して、テキストボックス上にマウスカーソルが重なるとツールヒントが表示されます。


コントロールを無効にする

ユーザーフォームと同様です。
「1-22 フォームを無効にする」

「ある条件を満たさないとコントロールが有効にならない」といった使い方が考えられます。
【例】全ての必須項目を入力しないと実行ボタンを押せない


コントロールのサイズを変更する

ユーザーフォームと同様です。
「1-10 フォームのサイズを変更する」


コントロールの位置を設定する

フォーム上のコントロールの位置は、フォームのクライアント領域の左上隅が基準になっています。 垂直位置はTopプロパティ、水平位置はLeftプロパティになります。


【補足情報】Top/Leftプロパティの基準

フォーム上のコントロールは、フォームのクライアント領域左上隅を位置の基準にしていますが、フレーム内のコントロールは、フレームの左上隅を位置の基準にします。
同様にマルチページ内のコントロールは、マルチページの左上隅を位置の基準にします。
このように、Top/Leftプロパティは、そのコントロールを格納する親オブジェクトである、コンテナを基準にしています。


【補足情報】コンテナ

ユーザーフォーム、フレームコントロール、マルチページコントロールのように、他のコントロールを内側に格納できる親オブジェクトのことを、コンテナといいます。
コンテナは、視認性を高くする役割のみでなく、グループを作る機能を備えています。
フォームのコントロールと、フレームやマルチページ内のコントロールは、別の階層といった構造になります。

コンテナは、階層ごとに一つのグループとなりますので、グループ内で一つしか選択できないOptionButtonコントロールで、その役割を確認することができます。
OptionButtonは同じ階層で、複数のグループに分ける場合、グループ名をつける必要がありますが、コンテナに収めると、グループ設定を行わなくとも、別のグループとして扱えます。


異なるコントロールをグループ化する

Tagプロパティは、全てのコントロールに備わっています。このプロパティは、プログラマが自由に値を設定でき、利用することができます。
例えば、種類の違うコントロールに同じグループ名を付けて、そのグループに対し一括で処理するといった使い方が考えられます。

次の例は、予めフォーム上の種類の異なる3つのコントロール(ラベル、チェックボックス、コマンドボタン)のTagプロパティに、共通の値を設定しグループ化しています。


サンプルコード

Tagプロパティに「グループ1」と設定されているコントロールの見出しを大文字に変換する

Private Sub UserForm_Click()
    Dim objCtl As Control
    For Each objCtl In Me.Controls
        If objCtl.Tag = "グループ1" Then
            objCtl.Caption = StrConv(objCtl.Caption, vbUpperCase)
        End If
    Next
End Sub



コントロールを非表示にする

Visibleプロパティはコントロールの表示・非表示を取得・設定します。
 ・True(既定):表示
 ・False:非表示

ユーザーフォームは、VBAからのみ表示状態を取得できましたが、コントロールは取得・設定ができ、プロパティウィンドウで予め設定することも可能です。


プロパティウィンドウでVisibleプロパティをFalseに設定した場合でも、VBE上ではコントロールは表示されています。Showメソッドでフォームを実体化した時に非表示となります。

何かの条件を満たした時に、コントロールを表示するといった使い方が考えられます。


サンプルコード

予めプロパティウィンドウでテキストボックス1のVisibleプロパティをFalseに設定
フォーム上で[Shift]+[Ctrl]を押しながらマウスボタンの左を押すと、テキストボックスが表示

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Shift = 3 Then
        If Button = 1 Then
            TextBox1.Visible = True
        End If
    End If
End Sub



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

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

■ 購入:amazon

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