ユーザーフォームに配置した複数のテキストボックスの値をそれぞれ指定したセルへ次々とまとめて一括転送したいと思ったことありませんか?
そして記載するVBAコードもテキストボックスの個数分、書き続けるのは面倒なので、繰り返し処理をするFor~Nextステートメントの使い方をご紹介します。
テキストボックスの値をセルに書き写す方法
まずは基本の1つのテキストボックスの値をセルA1に書き出しVBAコードは、下記のようになります。
Private Sub CommandButton1_Click()
Range(“A1”).Value = UserForm1.TextBox1.Value
End Sub
- コマンドボタン1がクリックされたら
- セルA1にユーザーフォーム1のテキストボックス1に入力された値を転記する
- マクロの記述終了
このようにVBAコードを記述すれば1個の場合は簡単で、2個の場合は2行目に同じように記述すればOKです。
Private Sub CommandButton1_Click()
Range(“A1”).Value = UserForm1.TextBox1.Value
Range(“A2”).Value = UserForm1.TextBox2.Value
End Sub
ここまでは、何の問題もなくVBAコードを覚えたての頃でもすぐにできるようになっていると思います。
テキストボックスが複数ある場合のセルへの一括転記方法
さあ本題で、セルが10個あったらもちろん10行VBAコードを書きづつければ、何の問題も無く完成できますが、100個だったらどうします?
そこで、繰り返し処理をするFor~Nextステートメントを使って、短いVBAコードでたくさんの処理をまとめて一括処理できるようにしましょう。

For~Nextステートメントは、指定した回数だけ同じ処理を繰り返すことができる便利なVBAコードです。
例えば、テキストボックス1~10の値をまとめてセルA1~A10に転記するというVBAコードを書くと下記のようになります。
Private Sub CommandButton1_Click()
Dim i As Integer
With UserForm1
For i = 1 To 10
Cells(i , 1).Value = UserForm1.Controls(“TextBox” & i).Value
Next i
End With
End Sub
- コマンドボタン1がクリックされたら
- 整数型の変数iを宣言する
- ユーザーフォーム1での処理
- 変数が1~10まで行う
- セル(i,1)の値はユーザーフォーム1に配置したテキストボックスiの値とする
- 処理を繰り返す
- Withステートメント終了
- マクロ記述終了
ここで大事なのが、数字が変わる変数「i」です。
「i」には1~10までの値が入る事になるので、セル(i,1)はセルA1になり、テキストボックス1の値が転記されることになります。
次はセル(2,1)なのでA2でテキストボックス2・・・10となります。



変数「i」は適当につけた名前なので、aでもbでもaaaでも何でもいいので好きな変数名つけても大丈夫ですよ。
実際に使っているエクセルでは、数字入力が基本なので、整数型を指定する1行
「Dim i As Integer」を省略しても問題なくマクロ動いています。
変数iに当てはめる行番号とテキストボックス番号が異なる時の対処法
先ほどまでは、テキストボックス番号とセルの行番号が同じ場合の例としてご紹介しましたが、このようなことは稀で実際のところは、異なることがほとんどなので、変数「i」の対処法をご紹介します。
- テキストボックスの番号が1~10
- 転記したいセルはA4~A13(1~3行目までタイトルや項目で使用)
- Dim i As Integerは省略
Private Sub CommandButton1_Click()
With UserForm1
For i = 1 To 10
Cells(i +3, 1).Value = UserForm1.Controls(“TextBox” & i).Value
Next i
End With
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1での処理
- 変数が1~10まで行う
- セル(i+3,1)の値はユーザーフォーム1に配置したテキストボックスiの値とする
- 処理を繰り返す
- Withステートメント終了
- マクロ記述終了
変数iに「+」を加えればある程度対応できますが、「-」を使う事も可能で、時々やむを得ず使うこともあります。もちろん問題なくマクロは動いています。



テキストボックス番号に合わせるので、セルi+3とすることにより、最初の変数が1になるので+3することで4行目からスタートすることになります。
関連記事
紅葉スポット
-
日本庭園「松雲山荘」へ柏崎駅から徒歩圏内の大正時代からの紅葉名所
紅葉見頃 10月下旬~11月下旬 約3,000本つつじやもみじなどで大正時代に作られた日本庭園で、柏崎ガス創設者の飯塚謙三氏から柏崎市に移譲され無料で庭園内を散策でき… -
開業90年を超えても現役の日光いろは坂にある明智平ロープウェイ
日光駅や日光東照宮がある市街地と奥日光を結ぶいろは坂の終盤にある位置する「明智平」は、トイレや売店があるドライブインと呼んだ方がいい所なのですが、日光エリア… -
日光穴場!中禅寺湖展望台へ紅葉の中禅寺湖からバスで滞在時間30分
【紅葉見頃】10月中旬~11月上旬 紅葉の見頃となる10月中旬~11月上旬になると、いろは坂から延々華厳の滝や竜頭の滝までとにかく大渋滞して混雑が当たり前ですが、い… -
妙義山パノラマパーク紅葉へバスで上州富岡駅から滞在時間35分
山が多い群馬県の中でも、赤城山・榛名山とともに妙義山を合わせて上毛三山と呼ばれる群馬県代表の山で、日本三大奇勝でもあり、岩肌が切り立った景観が特徴でもありま… -
八ッ場ダムの近くにある鹿飛橋と白絹の滝へ吾妻渓谷の紅葉へ
何かと話題の群馬県の八ッ場ダムの近くにある吾妻渓谷は、吾妻川の水が侵食して深い峡谷を作った為に、自然にできた谷深い峡谷となっています。 その吾妻側の周りの木々… -
龍王峡駅から徒歩で紅葉や虹見の滝へ鬼怒川温泉駅からバスなら10分
【紅葉見頃】10月下旬~11月中旬 鬼怒川温泉と川治温泉の間に位置して、鬼怒川沿いに龍王峡自然研究路をいう遊歩道が整備されているので、火山の噴火によってできた岩…