ユーザーフォームの複数のテキストボックスの値をまとめてセルへ入力

Loop繰り返し処理VBA

ユーザーフォームに10個のテキストボックスに入力した値をまとめて一括でセルに書き写すことありませんか?

1個1個VBAコードを書いてもいいのですが、10個や20個と増えてきたら面倒なので一括転送しましょう。

目次

TextBox1の値はセルA1へ…TextBox10の値はセルA10へ

例えば、ユーザーフォームにTextBox1、2、3に入力した文字や数字を指定したシートのセルに記述する(転記)コードを書いてみます。

転記するシートは、Sheet1。セルはA1、A2、A3とすると、下記のようになります。

テキストボックス➡セル

Private Sub CommandButton1_Click()
Worksheets(“sheet1”).Range(“A1”).Value = TextBox1.Value
Worksheets(“sheet1”).Range(“A2”).Value = TextBox2.Value
Worksheets(“sheet1”).Range(“A3”).Value = TextBox3.Value
End Sub

これで、コマンドボタンを押すとユーザーフォームに配置しているTextBox1に入力された文字や数字はSheet1のセルA1に、TextBox2に入力された文字や数字はSheet1のセルA2に、TextBox3に入力された文字や数字はSheet1のセルA3に、必ず転記されます。

このように3つぐらいなら、コードも短いですし、間違えることは無さそうなのですが、これが、10個、20個、30個・・・となったら大変ですよね。

そこで繰り返し処理For~Nextを使用して一括転送しましょう。

For~Next

そこで、エクセルVBAで多く使われているFor~Nextですが、「指定した回数だけ処理を繰り返す」というものです。

ユーザーフォームに配置したそれぞれのテキストボックスに入力された値が、コマンドボタンで指定したセルに転記されます。

50個あっても、とても便利で簡単なので使わないなんて損ですよね。

これが基本的に繰り返しそれぞれのテキストボックス入力された値をセルにそれぞれ転記するコードになります。

※転記するシートはユーザーフォームが開いているシート上です。(シート指定していません)

一括処理するVBAコード

Private Sub CommandButton1_Click()
For i = 1 To 50
With UserForm1.Controls(“TextBox” & i)
Cells(i+100 , 1) = .Value
End With
Next i
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 数字が変わる部分を変数「i」として、変わる数字が1~50
  3. 変数「i」+100は、「i」+100行目という事なので101行目~150行までになります。
  4. ,1はA列を表しています。セルで言うと最初のセルは「A101」、最後のセルは「A150」になります。
  5. Valueで転記するという指示です。
  6. ユーザーフォーム(UserForm1)に設置されているコントロールのテキストボックス(TextBox「i」も1~50)に入力された値とイコールにする。
  7. Withステートメント終了
  8. この作業を「i」に書いてある1~50まで繰り返して行う
  9. マクロ記録終了

これでTextBox1の値はセル「F101」へ転記、TextBox50の値はセル「F150」と、順番にテキストボックスの値を順番に転記してくれます。

ユーザーフォームでオリジナルフォーム作ろう

エクセルの作業時間を短縮して効率よく作業を可能にする「ユーザーフォーム」を使いこなすには、基本を押さえておきましょう。

1日400人ぐらいの方が見ていただいている意外と人気ページなんです。

文字を入力するのに絶対使うTextBox

ユーザーフォームにテキストボックスを使わないで済むのは、確認画面ぐらいかな?

テキストボックスとセルをリンクさせる様々な方法を組み合わせれば、作業時間はあっという間に短縮できます。

あわせて読みたい
テキストボックス使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでコマンドボタン・ラベルと並んで使用頻度が高いテキストボックスの基本的な使い方と、活...

文字列だけじゃない!Labelもクリックできるので可能性大

ラベルといえばテキストボックスの説明として文字列で表示させるのが、基本の使い方ですがクリックするとプログラムを実行させることもできるのです。

工夫次第でできることは無限大に広がります。

あわせて読みたい
ラベル使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでコマンドボタン・ラベルと並んで使用頻度が高いテキストボックスの基本的な使い方と、活...

どんなVBAコードをコマンドボタンに記述しますか?

ボタンをクリックすると記述したプログラムが作動して、繰り返し作業や手間がかかったことが一瞬で完了させることができます。

あんなこともこんなこともできちゃいますよ。

あわせて読みたい
コマンドボタンの使い方や便利な活用法やワザ エクセルのオリジナル入力フォームが作ることができるユーザーフォーム。 そこでテキストボックス・ラベルと並んで使用頻度が高いコマンドボタンの基本的な使い方と、活...
波乗りアヒル
波乗りアヒル

ご覧いただきありがとうございます。

ブログランキングに登録しています。

少しでもお役に立てれば幸いで、参考になったようでしたら応援よろしくお願いします。


Microsoft Officeランキング

ユーザーフォームを使えばこんなに便利に早く作業が終わりますよ
あわせて読みたい
エクセルVBAで住所録入力フォームを作る方法 数百人規模の中規模の住所録や顧客データをエクセルで管理している事業所って意外と多いですが、データを検索して修正するのってすごく面倒じゃないですか? 面倒だなあ...
あわせて読みたい
ユーザーフォームでオリジナル入力画面を作る エクセルのデータ入力・検索・修正作業ってとても面倒で時間と手間がかかりませんか? この作業を簡単に素早く終わらせたくないですか? エクセル使うなら今話題の時短...
とりっぷぼうる
エクセル関数とVBAで和暦西暦対応カレンダー作成 | とりっぷぼうる エクセル関数を基本として作成し、ユーザーフォームで日付選択ができるようにすることで複雑なマクロが分からなくても、自由にカスタマイズして自分のエクセルに組み込んで...
あわせて読みたい
Excel-VBAもくじ~エクセルの作業時間を半減させる方法 【コピペOK】このExcel-VBAページに掲載している内容・VBAコードが、少しでもお役に立てるのであればコピーして使っていただいて構いません。 たった1秒で完了!驚異の...
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

目次