ここから本文です

VBAを使ったセルの修正・上書きについて。

質問者

capslockshiftctrl954さん

2011/3/912:15:14

VBAを使ったセルの修正・上書きについて。

エクセルで管理している顧客データを、オリジナルユーザーフォームで
検索→呼び出し→ユーザーフォーム内で修正後、→セルを上書きする。
というコードを作成しています。

ユーザーフォームには「検索」「修正入力」ボタンを用意しおり、
「検索」→「呼び出し」まではうまく作動しますが、
「ユーザーフォーム内で修正」→「修正入力」がうまく作動しません。

セルA3から名簿が入力されているのですが、
「修正入力」ボタンを押すと、入力してある全名簿が消え、
上書きしようとしていたユーザーフォーム内の顧客データのみ反映され、
かつ、顧客名A3セル(TextBox1)が空白になってしまいます。

下記コードはどこが間違っているのでしょうか。
Private Sub CommandButton1_Click()

Dim gyou As Long
Dim z As Object
Dim i As Integer

With Worksheets("Sheet1")
gyou = Range("A65536").End(xlUp).Row + 1
MsgBox gyou



For i = 1 To 16
Cells(gyou, i).Value = Me.Controls("TextBox" & i).Text
Me.Controls("TextBox" & i).Text = ""


Cells(ActiveCell.Row, 1).Value = TextBox1.Text
Cells(ActiveCell.Row, 2).Value = TextBox2.Text
Cells(ActiveCell.Row, 3).Value = TextBox3.Text
Cells(ActiveCell.Row, 4).Value = TextBox4.Text
Cells(ActiveCell.Row, 5).Value = TextBox5.Text
Cells(ActiveCell.Row, 6).Value = TextBox6.Text
Cells(ActiveCell.Row, 7).Value = TextBox7.Text
Cells(ActiveCell.Row, 8).Value = TextBox8.Text
Cells(ActiveCell.Row, 9).Value = TextBox9.Text
Cells(ActiveCell.Row, 10).Value = TextBox10.Text
Cells(ActiveCell.Row, 11).Value = TextBox11.Text
Cells(ActiveCell.Row, 12).Value = TextBox12.Text
Cells(ActiveCell.Row, 13).Value = TextBox13.Text
Cells(ActiveCell.Row, 14).Value = TextBox14.Text
Cells(ActiveCell.Row, 15).Value = TextBox15.Text
Cells(ActiveCell.Row, 16).Value = TextBox16.Text

TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox11.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""
TextBox15.Value = ""
TextBox16.Value = ""


ActiveCell.Offset(1, 0).Activate


Next
End With

TextBox1.SetFocus

閲覧数:
2,411
回答数:
1

違反報告

ベストアンサーに選ばれた回答

hige_082さん

2011/3/912:49:30

capslockshiftctrl954さん

理解できていないようですね
滅茶苦茶ですよ

多分、これでよいと思いますよ
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 16
Cells(ActiveCell.Row, i).Value = Me.Controls("TextBox" & i).Text
Me.Controls("TextBox" & i).Text = ""
Next
End With
TextBox1.SetFocus
End Sub

「検索」ボタンのコードが分れば、より確実な回答が出来ますが
これで試して見てください

質問した人からのコメント

2011/3/9 13:07:54

回答ありがとうございました。ご指摘頂いたとおり、勉強を始めたばかりで
本やネットで拾った情報をやみくもにつなげただけでした。ありがとうございます!!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する