Page 726 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼連番のTextBoxからの繰り返しコピー まこぴ 03/2/11(火) 17:58 ┗Re:連番のTextBoxからの繰り返しコピー biginner 03/2/11(火) 19:01 ┗Re:連番のTextBoxからの繰り返しコピー biginner 03/2/11(火) 19:06 ┗Re:連番のTextBoxからの繰り返しコピー まこぴ 03/2/12(水) 9:03 ┗Re:連番のTextBoxからの繰り返しコピー つん 03/2/12(水) 11:04 ┗Re:連番のTextBoxからの繰り返しコピー まこぴ 03/2/12(水) 13:14 ─────────────────────────────────────── ■題名 : 連番のTextBoxからの繰り返しコピー ■名前 : まこぴ ■日付 : 03/2/11(火) 17:58 -------------------------------------------------------------------------
初めて投稿させて頂きます。 VBA始めて間が無くちょっとしたソースにも2,3時間が平気で掛かるこの頃です。 皆様の力を貸してくださいm(_ _)m UserForm1 に TextBoxを連番で3列並べてあります TextBox101 TextBox201 TextBox301 TextBox102 TextBox202 TextBox302 TextBox103 TextBox203 TextBox303 TextBox104 TextBox204 TextBox304 ・ ・ ・ これを Cmdコピー というコマンドボタンをクリックした時に TEST.xls の sheet1 の A1,2,3〜はTextBox101,102,103・・・ B1,2,3〜はTextBox201,202,203・・・ C1,2,3〜はTextBox301,302,303・・・ とコピーしていきたいのです 数が少ない時は直接コピーしていたんですが あまりにもただの繰り返しになってきたので ループ処理しようとしたのですがうまくいきません。 なにかすっきりとしたソースを教えて頂けたらと思います よろしく御願い致します |
▼まこぴ さん: こんばんは。 こういうのはどうでしょう。 Private Sub CommandButton1_Click() va = Array(TextBox101.Text, TextBox102.Text, TextBox103.Text, TextBox104.Text) vb = Array(TextBox201.Text, TextBox202.Text, TextBox203.Text, TextBox204.Text) vc = Array(TextBox201.Text, TextBox202.Text, TextBox203.Text, TextBox204.Text) For i = 0 To UBound(va) [a1].Select ActiveCell.Offset(i).Value = va(i) Next i For i = 0 To UBound(vb) [b1].Select ActiveCell.Offset(i).Value = vb(i) Next i For i = 0 To UBound(vc) [c1].Select ActiveCell.Offset(i).Value = vc(i) Next i Unload UserForm1 End Sub 面倒なので変数の宣言してません。ごめんなさい。 |
vc = Array(TextBox301.Text, TextBox302.Text, TextBox303.Text, TextBox304.Text) でした。すみません。 |
biginner さん 解答ありがとうございます 実はですね、TextBoxは 連番で22個あるので配列を使用すると 非常に長くなってしまので使えなかったんです FOR 〜 NEXT なんかで TextBox"i"みたいな形では使用できないんでしょうか? |
まこぴ さん、biginner おはようございます。 横から失礼します。 >実はですね、TextBoxは 連番で22個あるので配列を使用すると > 非常に長くなってしまので使えなかったんです >FOR 〜 NEXT なんかで > TextBox"i"みたいな形では使用できないんでしょうか? こんな感じではどうですか? Dim i As Long For i = 1 To 10 With Worksheets("Sheet1") .Cells(i, 1).Value = Me.Controls("Textbox1" & Format(i, "0#")).Value .Cells(i, 2).Value = Me.Controls("Textbox2" & Format(i, "0#")).Value .Cells(i, 3).Value = Me.Controls("Textbox3" & Format(i, "0#")).Value End With Next i とりあえず、10個ずつテキストボックス作って試してみたんですが・・ 良かったら試して見てください。 |
参考ソースありがとうございました つんさん のソースを参考に以下のソースで動作が思ったとおりになりました beginnerさん、つんさん ありがとうございました。 Dim count As Integer Dim i As Long count = 101 For i = 2 To 23 With Worksheets("反番") .Range("A" & i).Value = Me.Controls("Textbox" & count).Value .Range("B" & i).Value = Me.Controls("Textbox" & count + 100).Value .Range("C" & i).Value = Me.Controls("Textbox" & count + 200).Value End With count = count + 1 Next i |