アクセス上位ページ
 
最近の更新内容
(2)-c.ラベル ⇐ [PREV]
[NEXT] ⇒ (2)-e.コンボボックス

Excel VBA ≫ 5.ユーザーフォーム - 各種コントロール解説(2)-d.テキストボックス

テキストボックスのプロパティ

このページではテキストボックスの主なプロパティについて解説します。 テキストボックスはユーザーから文字列や数値、日付など様々な値を受け付けたり、また、値の表示にも使用できるため、必然的に使う機会が多くなります。 ユーザー視点に立ち、できるだけ使いやすい設定を目指しましょう。



このページで説明するテキストボックスのプロパティは以下のとおりです。 コントロールオブジェクトが異なるだけで前のページで説明した内容と同じプロパティについては説明を割愛させていただきます。 かわりにリンクをまとめてありますのでリンク先をご覧になってください。



テキストボックス内の文字列

テキストボックス内に入力した文字列は Value プロパティ、または、Text プロパティで取得可能です。 テキストボックスに文字列を設定したいときも、そのどちらかのプロパティに文字列を設定します。 この2つのプロパティは連動しており、片方のプロパティに値を設定すると、もう片方にも同じ値が設定されます。
管理人から一言・・・ テキストボックスの既定のプロパティ
既定のプロパティは Value プロパティです。プロパティを省略した場合は Value プロパティが指定されたものとみなされます。
  • Value、Text プロパティ
  • <プロパティウィンドウでの初期値設定例>
    Value、または、Text プロパティのどちらかに、任意の文字列を入力します。 Value、または、Text プロパティのどちらかに、任意の文字列を入力 <コードの記述例>
    'テキストボックスに文字列を表示(Textプロパティを使用しても同じ)
    TextBox1.Value = "神奈川県横浜市xxxx"
    

複数行、Enterキーの挙動、折り返し

テキストボックス内に入力した文字列の改行を行うには MultiLine プロパティに True を設定します。 改行の入力方法は EnterKeyBehavior プロパティの設定に依存し、 このプロパティが True だと [ Enter ] キーで改行を入力することができます。 一方 False の場合は [ Shift ] + [ Enter ] を入力する必要があります。
テキストボックスの端で文字列を折り返したい場合は WordWrap プロパティに True を設定し、 なおかつ、MultiLine プロパティにも True を設定する必要があります。
  • MultiLine、EnterKeyBehavior、WordWrap プロパティ
  • <プロパティウィンドウでの初期値設定例>
    各プロパティの右端をクリックし、ドロップダウンリストから True / False のどちらかを選びます。 複数行、Enterキーの挙動、折り返しの設定 <コードの記述例>
    '複数行を許可
    TextBox1.MultiLine = True
    '改行をEnterキーのみで行う
    TextBox1.EnterKeyBehavior = True
    '文字列の折り返しを行わない
    TextBox1.WordWrap = False
    


スクロールバーの表示

テキストボックスに入力した文字列がその幅または高さを超える場合、ScrollBars プロパティによってスクロールバーを表示することができます。 ScrollBars プロパティの設定値によって、水平および垂直スクロールバーの表示を各々設定することが可能です。 スクロールバーを表示すると、入力した文字列の量を視覚的に捉えやすくなります。
    <スクロールバーの表示イメージ> スクロールバー表示あり
  • ScrollBars プロパティ
  • <プロパティウィンドウでの初期値設定例>
    ScrollBars プロパティの右端をクリックし、ドロップダウンリストから希望のスクロールバー表示に対応する定数を1つ選びます。 スクロールバーの表示には他のプロパティの設定値もかかわってきます。 詳細は後述の『スクロールバー表示における注意点』をご覧になってください。 スクロールバーの表示設定 <コードの記述例>
    'スクロールバーを表示しない場合
    TextBox1.ScrollBars = fmScrollBarsNone
    '水平・垂直スクロールバーともに表示する場合
    TextBox1.ScrollBars = fmScrollBarsBoth
    

    ScrollBars定数一覧
    定数 内容
    fmScrollBarsNone 0 スクロール バーを表示しません。(既定値)
    fmScrollBarsHorizontal 1 水平スクロール バーを表示します。
    fmScrollBarsVertical 2 垂直スクロール バーを表示します。
    fmScrollBarsBoth 3 水平スクロール バーと垂直スクロール バーの両方を表示します。


  • スクロールバー表示における注意点
    • 水平スクロールバーを表示するのに必要な関連プロパティの設定
    • MultiLine = False または WordWrap = False

    • 垂直スクロールバーを表示するのに必要な関連プロパティの設定
    • MultiLine = True

    • 水平・垂直スクロールバーを両方表示するのに必要な関連プロパティの設定
    • MultiLine = True かつ WordWrap = False

    • スクロールバーが表示されたときの編集エリアについて
    • スクロールバーはテキストボックスのクライアント領域内に表示されます。 そのため、スクロールバーが表示されると、その分だけ編集エリアが狭くなります。 スクロールバーを表示するときには、編集エリアに十分余裕をもつようにしましょう。
      スクロールバー表示なし  ⇒  スクロールバー表示あり

IMEモード

テキストボックスにフォーカスが移ったとき(編集可能な状態になったとき)のIMEモードは、 IMEMode プロパティによって設定することが可能です。
  • IMEMode プロパティ
  • <プロパティウィンドウでの初期値設定例>
    IMEMode プロパティの右端をクリックし、ドロップダウンリストからテキストボックス編集時に設定したいIMEモードの定数を1つ選びます。 IMEモードの設定 <コードの記述例>
    '全角ひらがなモードで IME をオンにします。
    TextBox1.IMEMode = fmIMEModeHiragana
    

IMEMode定数一覧
定数 内容
fmIMEModeNoControl 0 IME のモードを変更しません。
(既定値)
fmIMEModeOn 1 IME をオンにします。
fmIMEModeOff 2 IME をオフにして英語モードにします。
fmIMEModeDisable 3 IME をオフにします。 このモードにするとユーザーは、キー操作によっても IME をオンにすることができなくなります。
fmIMEModeHiragana 4 全角ひらがなモードで IME をオンにします。
fmIMEModeKatakana 5 全角カタカナ モードで IME をオンにします。
fmIMEModeKatakanaHalf 6 半角カタカナ モードで IME をオンにします。
fmIMEModeAlphaFull 7 全角英数モードで IME をオンにします。
fmIMEModeAlpha 8 半角英数モードで IME をオンにします。


最大文字数

テキストボックスに入力できる文字数の上限値は、MaxLength プロパティによって設定することができます。 この上限値を設定すると、ユーザーはこの上限値を超える文字の入力ができなくなります。 ある決まった範囲の数値や日付など、入力するケタ(文字)数がわかっているような場合には設定しておいてもいいかもしれません。
なお、最大文字数を設定しても、コードからはこの上限値をを超える文字列を設定することができてしまいます。
  • MaxLength プロパティ
  • <プロパティウィンドウでの初期値設定例>
    MaxLength プロパティに、最大文字数を入力します。最大文字数を設定したくない場合はゼロを入力します。 最大文字数の設定 <コードの記述例>
    '最大文字数を設定しない場合
    TextBox1.MaxLength = 0
    '最大文字数を5文字に設定する場合
    TextBox1.MaxLength = 5
    

    最大文字数は全角・半角問わずその文字数分だけ入力することができます。 次の表示結果は最大文字数を5としてテキストボックスに最大限入力したときのものです。
    • 全角で入力した場合
    • 全角文字の場合
    • 半角で入力した場合
    • 半角文字の場合

パスワード文字

PasswordChar プロパティに任意の1文字を設定すると、テキストボックスに入力した文字列がすべてその文字で表示されます。 テキストボックスに表示される文字が変わっているだけであって、入力した文字列は Text プロパティなどでしっかり取得できます。
  • PasswordChar プロパティ
  • <プロパティウィンドウでの初期値設定例>
    PasswordChar プロパティにパスワード文字として表示させる任意の1文字入力します。 パスワード文字の設定 <コードの記述例>
    'パスワード文字を設定しない場合
    TextBox1.PasswordChar = ""
    'パスワード文字を設定する場合
    TextBox1.PasswordChar = "*"
    

    次の画像はパスワード文字としてアスタリスク"*"を設定したテキストボックスに文字列を入力したときの様子です。 パスワード文字を設定して文字を入力したときの様子

セレクションマージン

セレクションマージンとは、文字列をワンクリックで選択可能にする左端余白のことです。 この余白の有効/無効は SelectionMargin プロパティで設定できます。
セレクションマージンをクリック  ⇒  文字列が選択された様子
  • SelectionMargin プロパティ
  • <プロパティウィンドウでの初期値設定例>
    SelectionMargin プロパティの右端をクリックし、ドロップダウンリストから True / False のどちらかを選びます。 セレクションマージンの設定 <コードの記述例>
    'セレクションマージンを無効にする場合
    TextBox1.SelectionMargin = False
    'セレクションマージンを有効にする場合
    TextBox1.SelectionMargin = True
    

    セレクションマージンを無効にすると、その余白の分だけテキストボックス内の表示領域が広くなります。
    • セレクションマージン有効の場合
    • セレクションマージンが有効の場合
    • セレクションマージン無効の場合
    • セレクションマージンが無効の場合

<サイト内関連リンク> 関連リンクもチェック!!
- コントロール一覧
- 各コントロールに共通のプロパティ
   (Width、Height、BackColor、Enabled、Visible、ControlTipText)
カテゴリ内ページ
Excel VBA 〜 総目次 〜
- 5.ユーザーフォーム
--- (2)-a.コントロール一覧
--- (2)-b.共通プロパティ
--- (2)-c.ラベル
--- (2)-d.テキストボックス
--- (2)-e.コンボボックス
--- (2)-f.リストボックス
--- (2)-g.チェックボックス
--- (2)-h.オプションボタン
--- (2)-i.トグルボタン
--- (2)-j.スクロールバー
--- (2)-k.スピンボタン
--- (2)-l.イメージ



Page
Top