【VBA】ユーザーフォームで複数行入力できるテキストボックスを作成する方法

目次

はじめに

VBAのユーザーフォームで、住所や備考欄のように、ユーザーに複数行にわたる自由な文章を入力してもらいたい場合があります。デフォルトのテキストボックスは一行しか入力できませんが、いくつかのプロパティを設定するだけで、簡単に複数行入力に対応させることが可能です。

この記事では、テキストボックスで改行を有効にし、複数行のテキスト入力や表示を可能にするための主要なプロパティと、その設定方法を分かりやすく解説します。


複数行テキストボックスの設定サンプルコード

複数行入力に関連する設定は、主にフォームが表示される直前の UserForm_Initialize イベント内で行います。

この例では、MemoForm というフォームに配置された Remarks_TextBox を、複数行入力が可能な備考欄として設定します。

ユーザーフォームのコード

' フォームが初期化されるときに実行されるイベント
Private Sub UserForm_Initialize()

    With Me.Remarks_TextBox
    
        ' .MultiLine プロパティ: 複数行の入力を有効にする
        .MultiLine = True
        
        ' .WordWrap プロパティ: 右端での自動折り返しを有効にする
        .WordWrap = True
        
        ' .EnterKeyBehavior プロパティ: Enterキーでの改行を有効にする
        .EnterKeyBehavior = True
        
        ' .ScrollBars プロパティ: 必要に応じてスクロールバーを表示する
        .ScrollBars = fmScrollBarsVertical
        
        ' 初期値を設定(vbCrLfで改行を挿入)
        .Text = "【特記事項】" & vbCrLf & "1. "
        
    End With

End Sub

実行前の準備

  1. MemoForm という名前のユーザーフォームを作成します。
  2. フォーム上に「テキストボックス」を配置し、複数行が収まるように縦に広げておきます。
  3. テキストボックスの (Name) プロパティを Remarks_TextBox に変更します。
  4. フォームのコードモジュールに上記のコードを貼り付け、フォームを表示すると、設定が適用された複数行テキストボックスが表示されます。

コード(プロパティ)の解説

.MultiLine = True

これが複数行入力の最も基本となるプロパティです。True に設定することで、テキストボックスが複数行のテキストを扱えるようになります。これを設定しないと、他のプロパティも機能しません。

.WordWrap = True

テキストがテキストボックスの右端に達したときに、自動的に次の行に折り返すかどうかを設定します。True であれば、長い文章も枠内に収まるように自動で改行されます。通常は True に設定すると便利です。

.EnterKeyBehavior = True

ユーザーがテキストボックス内で Enter キーを押したときの動作を制御します。

  • True: テキストボックス内で改行が挿入されます。複数行入力欄としては、こちらが自然です。
  • False: Enter キーを押すと、フォームの次のタブオーダーのコントロールにフォーカスが移動します。

.ScrollBars

テキストがテキストボックスの表示領域に収まらない場合に、スクロールバーを表示するかどうかを設定します。

  • fmScrollBarsNone: スクロールバーなし(デフォルト)。
  • fmScrollBarsHorizontal: 水平スクロールバー。
  • fmScrollBarsVertical: 垂直スクロールバー。
  • fmScrollBarsBoth: 両方。

MultiLine = True の場合は、fmScrollBarsVertical を設定しておくと、長い文章が入力されても対応できるため親切です。

vbCrLf

VBAコード内で文字列を改行したい場合は、改行コードを表す定数 vbCrLf を使います。"1行目" & vbCrLf & "2行目" のように文字列を連結することで、テキストボックスの初期値として複数行のテキストを設定できます。


まとめ

今回は、ユーザーフォームのテキストボックスを複数行入力に対応させるための設定について解説しました。

  • .MultiLine = True を設定するのが大前提。
  • .WordWrap = True で自動折り返しを有効にする。
  • .EnterKeyBehavior = TrueEnter キーによる改行を可能にする。
  • .ScrollBars で、必要に応じてスクロールバーを追加する。

これらのプロパティを組み合わせることで、ユーザーが自由な形式で文章を入力できる、使いやすい備考欄やコメント欄をフォーム上に作成することができます。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次