OfficeType

VBA~ユーザーフォームのテキストボックスをフォーカスを受け取らない設定にしよう~Excel

Enabledプロパティ

ユーザーフォームのテキストボックスがフォーカス(マウスクリックまたはキーボード入力を受け取ることができること)を受け取らないように設定したい場合はEnabledプロパティをFalseに設定します。

書き方

オブジェクト名.Enabled = False

オブジェクト名はユーザーフォームのオブジェクト名と、テキストボックスのオブジェクト名を指定します。オブジェクト名の確認方法は作成したユーザーフォームファイルをクリックするとユーザーフォームが表示されます。ユーザーフォーム全体を選択するとプロパティウィンドウにオブジェクト名という項目があるので、それがユーザーフォームのオブジェクト名になります。次にテキストボックスを選択すると同じようにテキストボックスのオブジェクト名が確認できます。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。

UserForm1というユーザーフォームを作成し、TextBox1というテキストボックスを設定した場合、下のコードを実行するとテキストボックスを選択したり、入力したりできなくなります。文字列が入力されている場合は淡色で表示されます。

Sub test1()

Load UserForm1
UserForm1.TextBox1.Text = "あいうえお"
UserForm1.TextBox1.Enabled = False
UserForm1.Show

End Sub

プロパティウィンドウで設定

作成したユーザーフォームのファイルをクリックしプロパティウィンドウの選択欄からテキストボックスを選択します。プロパティウィンドウにEnabledの項目があるのでクリックすると▼マークが表示されるのでFalseを選択してください。。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。

Lockedプロパティ

ユーザーフォームのテキストボックスを編集不可にしたい場合はLockedプロパティを設定します。

書き方

オブジェクト名.Locked = True

UserForm1というユーザーフォームを作成し、TextBox1というテキストボックスを設定した場合、下のコードを実行するとテキストボックスを編集できなくなります。

Sub test2()

Load UserForm1
UserForm1.TextBox1.Text = "あいうえお"
UserForm1.TextBox1.Locked = True
UserForm1.Show

End Sub

プロパティウィンドウで設定

作成したユーザーフォームのファイルをクリックしプロパティウィンドウの選択欄からテキストボックスを選択します。プロパティウィンドウにLockedの項目があるのでクリックすると▼マークが表示されるのでTrueを選択してください。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。

image-01

image-02

image-03

image-04