大体でIT
大体でIT
2020/9/10
Excel VBAのテキストボックスに初期値を設定する方法と値を取得方法についてご紹介します。ボタン、イベント、プロパティを使ってセルへ出力することができます。ユーザーフォームを使えば別画面でテキストボックスを操作できますので入力作業を効率化することができます。
訪問ありがとうございます。この記事ではテキストボックスの作成と初期値の設定、テキストボックスの値を取得してセルへ出力する方法についてご紹介します。
別画面で入力作業するためにはユーザーフォームのテキストボックスが必要となります。
なのでテキストボックスを使いこなせれば入力作業を効率化することができますし、ちょっとかっこいいです。
テキストボックスの作成
テキストボックスの初期値設定
テキストボックスの値をセルへ入力
Excel VBAのテキストボックスはこんなやつです。
テキストボックス
テキストボックスの中に文字を入力することができます。
ツールボックスからユーザーフォームに作成することができます。
ツールボックス
このアイコンをクリックしてユーザーフォームに挿入します。
テキストボックスの使い方について説明していきます。
テキストボックスに初期値を設定する方法をご紹介します。
ユーザーフォームを開いた際にテキストボックスに初期値を設定するVBAコードです。
VBAコードは『ユーザーフォームの中のコード』に記載します。
'ユーザーフォームを開いたときに実行
Private Sub UserForm_Initialize()
'テキストボックスに『すいか』を入力
TextBox1.Text = "すいか"
End Sub
初期値の設定
ユーザーフォームを開いたタイミングでテキストボックスに初期値『すいか』を取得しています。
ユーザーフォームを開いた際に実行するVBAコードは『Private Sub UserForm_Initialize()』になります。
テキストボックスへ値を入力は『TextBox1.Text = 〇〇』でできます。
ユーザーフォームでコードを追加する際はVBA画面の上のリストから挿入することができます。
左上側のリストをクリックして『UserForm』を選択します。
Initializeの表示手順①
そのあと右上のリストから『Initialize』を選択します。
Initializeの表示手順②
これで『Private Sub UserForm_Initialize()』が作成できます。
Initializeの表示手順③
ユーザーフォームのコードを挿入する際は手入力ではなくリストから選ぶ方が簡単かと思います。
セルに入力された値を初期値として取得する方法を紹介します。
VBAコードはこちらになります。『ユーザーフォームの中のコード』に記載します。
'ユーザーフォームを開いたときに実行
Private Sub UserForm_Initialize()
'セルの値をテキストボックスに設定
TextBox1.Text = ActiveSheet.Cells(1, 1)
End Sub
こちらのVBAコードを実行するとこのようになります。
セルから初期値を取得
ユーザーフォームを開いたタイミングでセルの値『メロン』がテキストボックスの中に入力されています。
テキストボックスへの初期値は『Private Sub UserForm_Initialize()』を使ってユーザーフォームが開かれたタイミングで実行するコードを使用します。
あとはセルの値をテキストボックスへ入力『TextBox1.Text = ActiveSheet.Cells(1, 1)』です。
テキストボックスに入力された値を取得する方法とセルへ出力する方法について説明します。
テキストボックスに入力された値を取得するVBAコードはこちらになります。
'ボタンをクリックしたときに実行
Private Sub CommandButton1_Click()
'テキストボックスの値を表示
MsgBox TextBox1.Text
End Sub
こちらのVBAコードを実行すると次のようになります。
テキストボックスの値を取得
テキストボックスに入力された『いちご』が表示されました。
テキストボックスの値を取得するのは『テキストボックス名.Text』で取得することができます。
テキストボックス名が『TextBox1』なので『TextBox1.Text』としています。
ボタンを使ってテキストボックスに入力された値をセルへ入力する方法です。
ボタンをクリックしたときにセルへ入力したい場合です。
'ボタンをクリックしたときに実行
Private Sub CommandButton1_Click()
'テキストボックスの値をセルへ出力
ActiveSheet.Cells(1, 1) = TextBox1.Text
End Sub
ユーザーフォームのボタンをクリックした結果をみてみます。
テキストボックスに値を入力
ボタンでテキストボックスの値をセルへ出力
セルA1にテキストボックスの値『ばなな』をセルへ出力することができました。
ボタンをクリックした際にVBAコードを実行する『Private Sub CommandButton1_Click()』を使用しています。
このVBAコードの中にテキストボックスの値をセルへ入力するコード『ActiveSheet.Cells(1, 1) = TextBox1.Text』を記載しています。
Changeイベントを使ってテキストボックスの値をセルへ出力する方法です。
テキストボックスの値が変更されたときにセルへ出力します。
'テキストボックスの値を変更したときに実行
Private Sub TextBox1_Change()
'テキストボックスの値をセルへ出力
ActiveSheet.Cells(1, 1) = TextBox1.Text
End Sub
テキストボックスの中に『キウイ』を入力してみます。
Changeイベントでテキストボックスの値をセルへ出力
テキストボックスの値が変更されたら実行するのでテキストボックスに値を入力した時点でセルへ入力されています。
テキストボックスが変更されたときに実行するコードは『Private Sub TextBox1_Change()』となります。
このVBAコードの中にテキストボックスからセルへ出力するVBAコード『ActiveSheet.Cells(1, 1) = TextBox1.Text』を記載しています。
テキストボックス内で『Enter』を押した際にテキストボックスの値をセルへ入力する方法を紹介します。
'テキストボックスにキーを入力したときに実行
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'入力したキーが『Enter』の場合
If KeyCode = vbKeyReturn Then
'テキストボックスの値をセルへ出力
ActiveSheet.Cells(1, 1) = TextBox1.Text
End If
End Sub
テキストボックスに値を入力
テキストボックスで『Enter』をクリックします。
Enterクリックでテキストボックスの対をセルへ出力
キーが押された際に実行する『Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)』を使っています。
押したキーがEnterであった場合『If KeyCode = vbKeyReturn Then』にセルに出力しています。
ちょっと応用でユーザーフォームを開いた際にセルから初期値を取得してボタンクリックでセルへ出力するVBAコードをご紹介します。
セルから値を取得してテキストボックスの値を変更してセルへ出力するといった使い方ができます。
セルから初期値を取得してボタンクリックでセルへ出力するVBAコードです。
'ユーザーフォームを開いたときに実行
Private Sub UserForm_Initialize()
'セルの値をテキストボックスに設定
TextBox1.Text = ActiveSheet.Cells(1, 1)
End Sub
'ボタンをクリックしたときに実行
Private Sub CommandButton1_Click()
'テキストボックスの値をセルへ出力
ActiveSheet.Cells(1, 1) = TextBox1.Text
End Sub
セルから初期値を取得
セルからテキストボックスに初期値『りんご』を取得できました。
テキストボックスの値を『さくらんぼ』に変更してみます。
テキストボックスの値を変更
ボタンでテキストボックスの値をセルへ出力
変更したテキストボックスの値『さくらんぼ』がセルへ出力されました。
テキストボックスを使ってセルの値を変更する際にはこの方法が使えるかと思います。
VBAのプロパティを使っても初期値の取得とセルへの出力ができます。
複雑なVBAコードを作らない場合はこちらの方法を使うといいかと思います。
VBAの画面でプロパティで『ControlSource』にセル『A1』を入力します。
VBAのプロパティを設定
設定が完了したのでユーザーフォームを開いてみます。
セルから初期値を取得
テキストボックスの値を変更
テキストボックスとセルが連動
セルにテキストボックスの値『みかん』が出力されました。
このようにプロパティを使えば簡単にセルとテキストボックスを連動させることができます。
プロパティを使う方法でテキストボックスに入力した内容を更新するには他のコントロールをアクティブするとできます。
今回はテキストボックスしかないので閉じて実行しています。
この記事ではテキストボックスの作成と初期値の設定、テキストボックスの値を取得してセルへ出力する方法についてご紹介しました。
別画面で入力作業するためにはユーザーフォームのテキストボックスが必要となります。
なのでテキストボックスを使いこなせれば入力作業を効率化することができるかと思います。
ご参考になればと思います。最後までご覧くださいましてありがとうございました。