ユーザーフォーム入門
第7回.テキストボックス(TextBox)の値をセルへ

Excelマクロのユーザーフォームの基礎、エクセルVBAの入門解説
最終更新日:2019-12-15

第7回.テキストボックス(TextBox)の値をセルへ


ユーザーフォーム入門として基礎から解説します。
ユーザーフュームのテキストボックスに入力した値を、ワークシートのセルに出力します。


前回までに作成したユーザーフォーム

前回作成したユーザーフォームです。

VBA マクロ ユーザーフォーム

「OK」ボタンを押下すると、このテキストボックスに入力した値をワークシートのセルに値を設定するようにします。

ワークシートの用意

まずは、出力するワークシートを用意します。

VBA マクロ ユーザーフォーム

とりあえず、こんな感じで良いでしょう。
シート名は、「顧客マスタ
実行ボタンには、先に作成してある、



Sub FormShow()
  frmSample.Show
End Sub

このプロシージャーを割り当てておきましょう。

OKボタンクリック時のイベントプロシージャー作成

では、続いて、
「OK」ボタンをダブルクリックし以下のイベントを追加します。

または、コード画面の左上のオブジェクト選択で、btnCancelを選択してイベントプロシージャーを挿入できます。
選択するオブジェクトにより既定のイベントが自動挿入されます。

VBA マクロ ユーザーフォーム

コマンドボタンはClickイベントが自動挿入されます。
目的のイベント以外の場合は、右側のイベント選択で目的のイベントを選択します。

VBA マクロ ユーザーフォーム

Private Sub btnOk_Click()

End Sub

これを以下に変更します。



Private Sub btnOk_Click()
  Dim lastRow As Long
  With Worksheets("顧客マスタ")
    lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    .Cells(lastRow, 1).Value = Me.txtコード.Text
    .Cells(lastRow, 2).Value = Me.txt漢字名称.Text
    .Cells(lastRow, 3).Value = Me.txtカナ名称.Text
  End With
  Unload Me
End Sub

これで完成です。

テキストボックスに入力された値は、
Textプロパティ、または、Valueプロパティで取得します。

シートの実行ボタンを押下しフォームを起動して、
テキストボックスに入力してから、「OK」ボタンを押下してみましょう。
一番下に、テキストボックスの値が入りましたね。

ユーザーフォームのインテリセンス

btnOk_Clickを作成するとき、単に全てコピペで貼り付けるのではなく、
実際にタイピングして入力してみて下さい。
すると、何かに気がつくと思います。
Me.
ここまで入力したときに、インテリセンス(自動補完)が効きます。

VBA マクロ ユーザーフォーム

そして、
Me.txt
ここまで入力すると、

VBA マクロ ユーザーフォーム

オブジェクト名にプリフィックスを付けたのはこの為です。
そうです、名前を確認しやすくなりますし、効率が良くなります。


今回はここまでです。
次回は、今回とは逆にワークシートの値をテキストボックスに表示します。
ではまた次回お会いしましょう。




同じテーマ「ユーザーフォーム入門」の記事

第4回.コントロールの位置・サイズ調整
第5回.ラベルの追加
第6回.テキストボックス(TextBox)の追加
第7回.テキストボックス(TextBox)の値をセルへ
第8回.セルの値をテキストボックスへ
第9回.標準モジュールとフォーム間のデータ受け渡しⅠ
第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
第11回.コンボボックス(ComboBox)の追加
第12回.リストボックス(ListBox)の追加
第13回.チェックボックス(CheckBox)の追加
第14回.オプションボタン(OptionButton)の追加


新着記事NEW ・・・新着記事一覧を見る

VBAのインデントについて|VBA技術解説(7月15日)
「VBA Match関数の限界」についての誤解|エクセル雑感(7月15日)
省略可能なVariant引数の参照不可をラップ関数で利用|VBA技術解説(7月12日)
100桁の正の整数値の足し算|エクセル雑感(7月9日)
LSetとユーザー定義型のコピー(100桁の足し算)|VBA技術解説(7月9日)
Variant仮引数のByRefとByValの挙動違い|エクセル雑感(7月5日)
Variant仮引数にRange.Valueを配列で渡す方法|エクセル雑感(7月5日)
Variantの数値型と文字列型の比較|エクセル雑感(7月1日)
VBAのVariant型について|VBA技術解説(6月30日)
VBAのString型の最大文字数について|エクセル雑感(6月20日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ