StudyLog

勉強の記録など。

ExcelVBA本格入門 Chapter11②

学習日:2024/08/05

参考書:ExcelVBA本格入門 技術評論社(著者 大村あつし)

11-4まで(P234-244)

 

【学習内容のまとめ】

  • テキストボックスとは?

    • テキストボックスは、ユーザーが文字を入力することができるコントロール
    • 入力された文字列は、マクロ内で取得したり、その値をワークシートに書き込んだりすることができる
  • 文字列が表示される位置を制御する

    • TextAlignプロパティを使って、文字列を左揃え、中央寄せ、右揃えのいずれかに設定することができる
  • 入力できる文字数を制限する

    • テキストボックスに入力できる文字数を制限するには、MaxLengthプロパティを使う
    • デフォルト値は0で、この場合は文字数に制限がない
    • 0以外の数値を設定すると、設定した数値分の文字数しか入力できなくなる
    • AutoTabプロパティをTrueに設定していると、制限数まで文字を入力すると自動的にフォーカスが次のコントロールに移動する
    • 日本語入力(IMEローマ字入力モード)の場合使わないほうが良い(あ行以外の文字は最後の文字を入力したときに挙動がおかしくなる)
  • 文字列の取得と設定

    • テキストボックス内に表示される文字列の設定は、TextプロパティまたはValueプロパティで行う
    • TextプロパティはString型の値を返し、Valueプロパティはバリアント型の値を返す
  • 選択されている位置と文字数の取得と設定を行う

    • 選択されている先頭位置はSelStartプロパティで取得、マクロの実行中のみ操作できるプロパティ
    • 選択されている範囲の文字数はSelLengthプロパティで取得、マクロの実行中のみ操作できるプロパティ
  • 選択されている文字列の取得と設定を行う

    • 選択されている文字列はSelTextプロパティで取得でき、また選択されている文字列を置き換えることもできる。マクロの実行中のみ操作できるプロパティ

    • SelTextプロパティに空の文字列””を設定すると文字列を削除できる

      TextBox1.SelText = "”

  • IMEを自動的に切り替える

    • IMEModeプロパティを設定すると、実行時にフォーカスを取得すると自動的にIMEの入力モードが切り替わるようになる
  • パスワード入力用のテキストボックス

    • PasswordCharプロパティで任意の文字を設定すると、そのテキストボックスに入力した文字を設定した任意の文字で隠すことができる
    • 文字を隠すための任意の文字はプレースホルダーと呼ばれ、一般的には*が使われている
    • PasswordCharプロパティを設定したテキストボックスの文字列は、コピーや切り取り動作ができない
    • ただし、TextプロパティやValueプロパティを使って値を取得することは可能
  • 複数行の入力が可能なテキストボックス

    • MultiLineプロパティをTrueにすると複数行の入力が可能
    • 改行はCtrlキーを押しながらEnterキーを押す
    • EnterKeyBehaviorプロパティをTrueに設定するとEnterキーのみで改行可能
    • ScrollBarsプロパティで水平及び垂直方向にスクロールできるテキストボックスを作成できる
  • 入力された文字をチェックする

    • キーを一つ押すたびに、KeyDown、KeyPress、KeyUpの3つのイベントが発生している
    • KeyDown、KeyUpイベントでキーコードを取得
    • KeyPressで入力された文字の文字コードを取得
    • KeyPressイベントで入力された文字をチェックして、入力制限付きのテキストボックスを作成することができる
    • 他の文字列をコピペすることは可能なので、KeyPressイベントでのデータチェックは万全とは言えないため、OKボタンが押されたタイミングなどで再度チェックするべき
    • Exitイベントでフォーカスが他のコントロールに移動するときにチェックを行う方法もある