複数のテキストボックスの値を一括で複数のセルの値に書き換える方法

パソコン難しい
目次

セルA1~A10の値をまとめてテキストボックス1~10に転記する

ボウリング場のリーグ戦の成績表でも使っているエクセルで、リーグ戦のルールなどを設定するユーザーフォームに配置された複数のテキストボックス。

ここでは、「ボウリング成績表リーグ設定方法~LTB個人リーグ編」でも使用しているリーグ設定フォームを表示すると、配置したテキストボックスにすでに入力されているセルの値を自動的に使用開始レーンなどに順番に読み込んで表示するようになります。

あわせて読みたい
ボウリング成績表リーグ設定方法~LTB個人リーグ編 ボウリングリーグ戦のルールを設定します。 VBA(マクロ)が無効の場合はユーザーフォームが使えません。必ず有効にして下さい。 リーグ設定方法~LTB個人リーグ編 ボウ...

では、早速実用例です。

ボウリングのリーグ成績表で使っている実用例は、最初に「MENU」フォームから【リーグ設定】ボタンを押す。

すると、MENUフォームが閉じられて、リーグ設定フォームが開きます。

この時に、すでに入力されているリーグ設定各項目がセルから読み取られて、リーグ設定フォームの各項目のテキストボックスに転記されます。

下記がワークシートのセルに記載されている値

これを読み取って(セルの値)テキストボックスに転記
この場合コードを書いているのは「MENU」フォーム(ユーザーフォーム5)に配置した【リーグ設定】ボタン(コマンドボタン2)です
Private Sub CommandButton2_Click()
With UserForm2
For i = 1 To 10
UserForm2.Controls(“TextBox” & i).Value = Cells(i + 1, 40).Value
Next i
End With
UserForm2.TextBox11.Value = Range(“AO2”).Value
Unload UserForm5
UserForm2.Show
End Sub
  1. 「コマンドボタン2をクリックしたら実行する」というマクロの記述を開始
  2. ユーザーフォーム2を指定したWithステートメント開始
  3. 繰り返し処理の変数「i」を宣言し、変数「i」は1~10とする(転記先のテキストボックス番号)
  4. ユーザーフォーム2に配置したテキストボックス番号「i」の値は、セルi+1行目の40番目の列(最初の項目が2列目なので+1をすると2行目になり、40列目はAN列になる)のセルの値をテキストボックス「i」の入力枠に取り込む
  5. 指定回数(1~10)を繰り返して行う
  6. ユーザーフォーム2の処理Withステートメント終了
  7. テキストボックス11の入力枠にセルAO2の値を取り込む(使用終了レーン)
  8. ユーザーフォーム5を閉じる(MENUフォーム)
  9. ユーザーフォーム2(リーグ設定フォーム)を開く
  10. マクロ記述終了

[temp id=19]

2024年5月11日からマイルと楽天ポイントとの相互交換提携開始!

交換レート0.5:1なので半分になってしまいますが、使い方次第で実質3倍の価値まで引き上げられる方法です。

目次