教えて!ExcelVBA!

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

【ExcelVBA フォーム&コントロール】テキストボックスの値を取得や設定する方法②を教えて!

構文

構文は以下の通りです。

テキストボックス名.Text = 値

解説

Textプロパティは、テキストボックスのテキスト内容を取得または設定するために使用されます。このプロパティは、テキストボックスのテキストを操作するのに非常に便利です。

使い方

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

1.テキストボックスからテキストを取得する例

フォームに「TextBox1」という名前のテキストボックスがあり、ボタンをクリックしたときにテキストボックスに入力されたテキストをメッセージボックスで表示する例です。

Private Sub CommandButton1_Click()
    Dim userInput As String
    userInput = UserForm1.TextBox1.Text
    MsgBox "入力されたテキストは: " & userInput
End Sub

2.テキストボックスにテキストを設定する例

フォームに「TextBox1」という名前のテキストボックスと、ボタンがあり、ボタンをクリックしたときにテキストボックスに新しいテキストを設定する例です。

Private Sub CommandButton1_Click()
    UserForm1.TextBox1.Text = "新しいテキスト"
End Sub

3.テキストボックスのテキストをクリアする例

フォームに「TextBox1」という名前のテキストボックスと、ボタンがあり、ボタンをクリックしたときにテキストボックスの内容をクリアする例です。

Private Sub CommandButton1_Click()
    UserForm1.TextBox1.Text = ""
End Sub

プログラミング例

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

1.テキストボックスからテキストを取得して計算する例

フォームに2つのテキストボックス(TextBox1 と TextBox2)、ボタン(CommandButton1)、およびラベル(Label1)があると仮定します。ボタンをクリックすると、2つのテキストボックスに入力された数値を取得し、それらを足してラベルに表示します。

Private Sub CommandButton1_Click()
    Dim num1 As Double
    Dim num2 As Double
    ' テキストボックスから数値を取得
    num1 = CDbl(UserForm1.TextBox1.Text)
    num2 = CDbl(UserForm1.TextBox2.Text)
    ' 数値を計算し、結果をラベルに表示
    UserForm1.Label1.Caption = "合計: " & (num1 + num2)
End Sub

2.テキストボックスにユーザーの入力を表示する例

フォームにテキストボックス(TextBox1)とボタン(CommandButton1)があると仮定します。ボタンをクリックすると、ユーザーが入力したテキストをラベルに表示します。

Private Sub CommandButton1_Click()
    Dim userInput As String
    ' テキストボックスからユーザーの入力を取得
    userInput = UserForm1.TextBox1.Text
    ' 入力をラベルに表示
    UserForm1.Label1.Caption = "入力されたテキスト: " & userInput
End Sub

まとめ

テキストボックスの値を取得や設定する方法には、上記で説明したTextプロパティとその他にValueプロパティがあります。Textプロパティはテキストボックスに入力されたデータ型をテキストとして扱い、Valueプロパティは入力されたデータ型をそのまま扱うという違いがあります。データ型の変換や数値としての操作が不要な場合は、Textプロパティを使用すると便利です。一方、データ型にアクセスしたり、数値として計算したりする必要がある場合は、Valueプロパティを使用します。参考までに追記しておきます。