[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『フォームのデータをエクセルシートに転記』(クロ)
WindowsXP、Excel2000を使用しています。
顧客管理のデータベースを作成しています。
ユーザーフォームでデータを入力したものを、コマンドボタンで
エクセルシートに転記していくマクロを組んでみたのですが、
B2からB7にかけて、管理番号、氏名、フリガナ、〒、住所、宛名 の
転記先があります。
データの最終行に追加する為、いったん950行にデータを格納した後、
B列の番号順にソートをかけるという方法をとっています。
Cells(950, 2).Value = TextBox1.Text '管理番号 Cells(950, 3).Value = TextBox2.Text '氏名 Cells(950, 4).Value = TextBox3.Text 'フリガナ Cells(950, 5).Value = TextBox4.Text '郵便番号 Cells(950, 6).Value = TextBox5.Text '住所 Cells(950, 7).Value = TextBox6.Text '宛名 Range("B2:V1000").Select Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin
今後、データ項目が増えていく予定がありまして、転記をこの方法で
行っている場合、データ列が増えるたびに以下のマクロを追加記述
しないといけないという問題がでてきます(^^;
Cells(950, ○).Value = TextBox□.Text
ご教授願いたいのは、データ項目が100あるとしまして、1〜100のデータを
Cells(950, 2〜100).Value = TextBox1〜100.Text
みたいな感じで転記範囲を指定するだけで随時変更することが可能と
ならないでしょうか、ということです。
よろしくお願いいたします。
どうぞ。
dim i as long dim r as long
with worksheets("sheet1")
r = .range("b65536").end(xlup).row + 1
for i = 1 to 6 .Cells(r, 1 + i).Value = me.controls("TextBox" & i).Text next i
end with
(INA)
INAさんに先に書かれてしまいました(^_^A; 折角書いたので、載せさせてください。 Private Sub CommandButton1_Click() Dim MyAry() As Variant Const ColCount As Long = 6 '項目数 Set MySh = Worksheets("Sheet1") 'シート名がSheet1 LastR = MySh.Range("B65536").End(xlUp).Row '最終行の取得 ReDim MyAry(ColCount - 1) For i = 0 To UBound(MyAry()) MyAry(i) = Me.Controls("TextBox" & i + 1).Text Next i With MySh .Cells(LastR + 1, 2).Resize(1, ColCount).Value = MyAry() .Cells(3, 2).Resize(LastR - 1, ColCount).Sort Key1:=.Range("B2") End With End Sub
(川野鮎太郎)
(クロ)
川野さんのマクロも動かして、今後のために勉強
させていただきます。m(__)m
ありがとうございました!^^
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.