ユーザーフォームに配置した複数のテキストボックスの値をそれぞれ指定したセルへ次々とまとめて一括転送したいと思ったことありませんか?
そして記載する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行目からスタートすることになります。
関連記事
紅葉スポット
-
土合駅から谷川岳ロープウェイで天神平スキー場からの天空紅葉絶景へ
谷川岳ロープウェイに乗って谷川岳天神平スキー場として冬は多くのスキーヤーに楽しまれていますが、夏は避暑地スポットとして気温22℃の涼しさを体感でき、さらに秋は一… -
筑波山紅葉ライトアップへつくば駅や土浦駅からバスで紅葉絶景へ
2月の筑波梅林、6月のあじさいと年に何度も訪れたくなる筑波山は関東平野を一望できるちょうどいい60㎞という距離にあります。 紅葉が綺麗に見られるエリアは梅林周辺で… -
北関東トップクラスの日本庭園がある徳明園の標高差による紅葉絶景へ
【紅葉見頃】11月中旬~12月上旬 高崎市内循環バス「ぐるりん」バスのフリーエリア内のあるので、電車とバスを利用して気軽に訪れることができ、北関東一ともいわれる… -
笠間市の紅葉名所・北山公園へ友部駅からバス利用で滞在時間40分
茨城県の観光情報が掲載されているサイトで見つけた「北山公園」へのアクセスが、JR水戸線の宍戸駅から徒歩20分と書いてあったので、訪れてみたら広い北山公園の端っこ… -
電車とバスのフリーきっぷで行ける10月見頃の紅葉スポットへ
見頃順人気順10月見頃11月見頃12月見頃 関東エリアの人気紅葉スポット 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は… -
水戸偕楽園のもみじ谷ライトアップは無料で水戸駅からバスで行ける
水戸の偕楽園と言えば梅林が有名なので、訪れたことが1度はあるかもしれませんが、以外と言ったら失礼なのですが、もみじ谷と呼ばれる場所があり、約170本のもみじやか…