HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > テキストボックスをEnable=Falseにした際の表示を独自の表示方法にする

即効テクニック

ユーザーフォーム関連のテクニック

テキストボックスをEnable=Falseにした際の表示を独自の表示方法にする

(Excel 97)
ユーザーフォームのテキストボックスをEnable=Falseにすると、中の文字列がグレーに変わります。
それを例えば、文字は黒表示にしたい、文字をスクロールさせたいといった場合は、テキストボックスはEnable=Falseとしてテキストボックスの上にラベルを置くなどして別のコントロールを利用して対処する方法があります。
サンプルでは、次のような対処をしています。
フォームにテキストボックス「TextBox1」とラベル「Label1」とコマンドボタン「CommandButton1」を用意します。
テキストボックスと同じ位置にラベルを配置して、フォームが開かれる時に発生するイベント「Initialize」でラベルを非表示にします。
コマンドボタンがクリックされると発生するイベント「Click」で、ラベルの標題にテキストボックスに入力された値を設定して表示し、テキストボックスを非表示にします。
Private Sub UserForm_Initialize()
    Label1.Visible = False
End Sub

Private Sub CommandButton1_Click()

    Label1.Visible = True
    Label1.Caption = TextBox1
    TextBox1.Enabled = False

End Sub
また、テキストボックスをEnable=True、Locked=True と設定すると、見た目は変わらず操作だけが不可能になります。
Private Sub CommandButton1_Click()

    TextBox1.Enabled = True
    TextBox1.Locked = True

End Sub