教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】テキストボックス内の入力されたデータの表示位置を設定する方法を教えて!

構文

構文は以下の通りです。

テキストボックス名.TextAlign = 定数

解説

TextAlignプロパティは、テキストボックスに表示する文字の表示位置を設定する事ができます。定数には以下のいずれかを設定します。

定数 内容
fmTextAlignLeft 1 左揃え
fmTextAlignCenter 2 中央揃え
fmTextAlignRight 3 右揃え

使い方

具体的な使い方を紹介します。

Sub SetTextBoxAlignment()
    ' ユーザーフォーム内のテキストボックスにアクセスする
    UserForm1.TextBox1.TextAlign = fmTextAlignLeft ' テキストを左寄せに配置
    UserForm1.TextBox2.TextAlign = fmTextAlignCenter ' テキストを中央寄せに配置
    UserForm1.TextBox3.TextAlign = fmTextAlignRight ' テキストを右寄せに配置
End Sub

このコードでは、UserForm1 という名前のユーザーフォーム内に配置された3つのテキストボックスの TextAlign プロパティを設定しています。それぞれのテキストボックスが異なる配置でテキストを表示することができます。

プログラミング例

以下に、プログラミング例を紹介します。

例1: フォーム内のテキストボックスを右寄せに設定する

Private Sub SetTextAlignmentRight()
    UserForm1.TextBox1.TextAlign = fmTextAlignRight ' テキストボックスを右寄せに設定
End Sub

このコードは、指定したテキストボックスを右寄せに設定します。

例2: フォーム内のすべてのテキストボックスを中央揃えに設定する

Private Sub SetAllTextAlignmentCenter()
    Dim ctrl As Control
    For Each ctrl In UserForm1.Controls
        If TypeName(ctrl) = "TextBox" Then
            ctrl.TextAlign = fmTextAlignCenter ' すべてのテキストボックスを中央揃えに設定
        End If
    Next ctrl
End Sub

このコードは、フォーム内のすべてのテキストボックスを中央揃えに設定します。

例3: 条件に応じてテキストボックスの表示位置を切り替える

Private Sub SetTextAlignmentBasedOnCondition()
    If Range("A1").Value = "右寄せ" Then
        UserForm1.TextBox1.TextAlign = fmTextAlignRight
    ElseIf Range("A1").Value = "中央揃え" Then
        UserForm1.TextBox1.TextAlign = fmTextAlignCenter
    Else
        UserForm1.TextBox1.TextAlign = fmTextAlignLeft
    End If
End Sub

このコードは、セルA1の値に応じてテキストボックスの表示位置を切り替えます。セルA1に「右寄せ」が入力されると、テキストボックスが右寄せに、それ以外の場合は中央揃えになります。

まとめ

TextAlignプロパティを使いこなすことで、データの視覚的な整列を制御し、ユーザーエクスペリエンスを向上させることができます。是非活用してください。