大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAのテキストボックスに初期値を設定する方法と値を取得方法についてご紹介します。ボタン、イベント、プロパティを使ってセルへ出力することができます。ユーザーフォームを使えば別画面でテキストボックスを操作できますので入力作業を効率化することができます。

はじめに

訪問ありがとうございます。この記事ではテキストボックスの作成と初期値の設定、テキストボックスの値を取得してセルへ出力する方法についてご紹介します。

別画面で入力作業するためにはユーザーフォームのテキストボックスが必要となります。

なのでテキストボックスを使いこなせれば入力作業を効率化することができますし、ちょっとかっこいいです。

この記事で紹介すること

  • テキストボックスの作成
  • テキストボックスの初期値設定
  • テキストボックスの値をセルへ入力

目次から見たい項目へ移動すると便利ですよ。

目次

ExcelVBAのテキストボックスの作成方法

Excel VBAのテキストボックスはこんなやつです。

テキストボックス

Excel VBAのテキストボックス

テキストボックスの中に文字を入力することができます。

ツールボックスからユーザーフォームに作成することができます。

ツールボックス

ツールボックスからテキストボックスを作成

このアイコンをクリックしてユーザーフォームに挿入します。

テキストボックスの使い方について説明していきます。

テキストボックスに初期値を設定

テキストボックスに初期値を設定する方法をご紹介します。

初期値設定

ユーザーフォームを開いた際にテキストボックスに初期値を設定するVBAコードです。

VBAコードは『ユーザーフォームの中のコード』に記載します。

'ユーザーフォームを開いたときに実行
Private Sub UserForm_Initialize()
    'テキストボックスに『すいか』を入力
    TextBox1.Text = "すいか"
End Sub

このVBAコードを実行するとこのようになります。

初期値の設定

初期値を取得した結果

ユーザーフォームを開いたタイミングでテキストボックスに初期値『すいか』を取得しています。

ユーザーフォームを開いた際に実行するVBAコードは『Private Sub UserForm_Initialize()』になります。

テキストボックスへ値を入力は『TextBox1.Text = 〇〇』でできます。

ユーザーフォームでコードを追加する際はVBA画面の上のリストから挿入することができます。

左上側のリストをクリックして『UserForm』を選択します。

Initializeの表示手順①

VBA画面のリストからUserFormを選択

そのあと右上のリストから『Initialize』を選択します。

Initializeの表示手順②

VBA画面のリストからInitializeを選択

これで『Private Sub UserForm_Initialize()』が作成できます。

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イベントでテキストボックスの値をセルへ出力

Changeイベントでテキストボックスの値をセルへ出力

セルに『キウイ』が出力されました。

テキストボックスの値が変更されたら実行するのでテキストボックスに値を入力した時点でセルへ入力されています。

テキストボックスが変更されたときに実行するコードは『Private Sub TextBox1_Change()』となります。

このVBAコードの中にテキストボックスからセルへ出力するVBAコード『ActiveSheet.Cells(1, 1) = TextBox1.Text』を記載しています。

Enterでセルへ出力

テキストボックス内で『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

VBAコードを実行してみます。

テキストボックスに『梨』を入力します。

テキストボックスに値を入力

テキストボックスへ値を入力する

テキストボックスで『Enter』をクリックします。

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のプロパティを設定

プロパティでControlSourceを設定する

設定が完了したのでユーザーフォームを開いてみます。

セルから初期値を取得

ユーザーフォームを開く

セルから初期値『ぶどう』を取得できています。

テキストボックスの値を『みかん』に変更します。

テキストボックスの値を変更

テキストボックスの値を変更

ユーザーフォームを閉じます。

テキストボックスとセルが連動

テキストボックスの値がセルに入力される

セルにテキストボックスの値『みかん』が出力されました。

このようにプロパティを使えば簡単にセルとテキストボックスを連動させることができます。

プロパティを使う方法でテキストボックスに入力した内容を更新するには他のコントロールをアクティブするとできます。

今回はテキストボックスしかないので閉じて実行しています。

おわりに

この記事ではテキストボックスの作成と初期値の設定、テキストボックスの値を取得してセルへ出力する方法についてご紹介しました。

別画面で入力作業するためにはユーザーフォームのテキストボックスが必要となります。

なのでテキストボックスを使いこなせれば入力作業を効率化することができるかと思います。

ご参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す