HOME > 即効テクニック > AccessVBA > コーディング・デバッグ > 任意のコントロールにツールチップを追加する

即効テクニック

コーディング・デバッグ

任意のコントロールにツールチップを追加する

(Access 97)
●概要●
フォーム上のコントロールに、ツールチップを追加・変更する関数を作成します。
ツールチップを表示するためには、コントロールのControlTipTextを使用します。

●サンプルコード●
汎用関数ですので、標準プロシージャに以下のコードを記述して下さい。

'【引数説明】
'FromName   :ツールチップを追加するコントロールの親フォーム名
'CtlName    :ツールチップを追加するコントロール名
'TipText    :追加するツールチップの本文
Public Function AddToolTip(FormName As String, _
                           CtlName  As String, _
                           TipText  As String)

    On Error GoTo Func_Err:

    Dim Frm As Form     'フォームオブジェクト
    Dim Ctl As Control  'コントロールオブジェクト

    'フォームとコントロールオブジェクトの取得
    Set Frm = Forms(FormName)
    Set Ctl = Frm.Controls(CtlName)

    'コントロールにツールチップを設定
    Ctl.ControlTipText = TipText

    '終了処理
    Func_Exit:
        Set Ctl = Nothing
        Set Frm = Nothing
        Exit Function

    'エラートラップ
    Func_Err:
        MsgBox "Error Number : " & Err.Number & vbCrLf & Err.Description
        GoTo Func_Exit:
End Function

●動作確認●
新規フォーム[フォーム1]を作成し、コマンドボタン[Command1]を配置します。
そしてフォームのコマンドボタンクリック時イベントに、以下のプロシージャを記述します。

'プロシージャレベルの変数宣言
Dim intClickCount

Private Sub Command1_Click()
    Me.Command1.ControlTipText = "コマンドボタンが" & intClickCount & _
                                 "回" & vbCrLf & "クリックされました"
    intClickCount = intClickCount + 1
End Sub

これで、コマンドボタンを押した回数がツールチップとして表示されるようになります。
また、上記のようにツールチップ内に改行を含めることも可能です。
この関数を応用すれば、データの有無や状態、フォームの各プロパティの状態などによって、動的にツールチップを変化させることが出来ます。