• ベストアンサー

ユーザーフォームのデータ

ユーザーファームを2つ作成しました。 そのユーザーフォームのデータを表の最終行に追加をしたいのです。 Range("A65536").End(xlUp).Offset(1,0).select を使おうと思っていますが、うまくいきません。 どなたか教えてください。 <ユーザーフォーム1> Private Sub CommandButton1_Click() Sheet2.Range("H7") = TextBox1 Sheet2.Range("I7") = TextBox2 Sheet2.Range("J7") = TextBox3 Sheet2.Range("K7") = TextBox4 Sheet2.Range("L7") = TextBox5 Sheet2.Range("P7") = TextBox6 If CheckBox1.Value = True Then Worksheets(2).Range("M7") = "0:30" Else Worksheets(2).Range("M7") = "0:00" End If If CheckBox2.Value = True Then Worksheets(2).Range("R7") = "1000" Else Worksheets(2).Range("R7") = "0" End If If CheckBox3.Value = True Then Worksheets(2).Range("S7") = "3000" Else Worksheets(2).Range("S7") = "0" End If If CheckBox4.Value = True Then Worksheets(2).Range("T7") = "1500" Else Worksheets(2).Range("T7") = "0" End If Unload Me End Sub <ユーザーフォーム2> Private Sub CommandButton1_Click() Sheet2.Range("V7") = TextBox1 Sheet2.Range("W7") = TextBox2 Sheet2.Range("X7") = TextBox3 Unload Me End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

多少コードに手を加えています。 Private Sub CommandButton1_Click()   Dim lRow As Long   With Sheets("Sheet1")     '最終行から転記先となる行番号を取得     lRow = .Cells(65536, "A").End(xlUp).Row + 1     'データ転記     .Cells(lRow, "H").Value = TextBox1.Text     .Cells(lRow, "I").Value = TextBox2.Text     .Cells(lRow, "J").Value = TextBox3.Text     .Cells(lRow, "K").Value = TextBox4.Text     .Cells(lRow, "L").Value = TextBox5.Text     .Cells(lRow, "P").Value = TextBox6.Text          If CheckBox1.Value Then       .Cells(lRow, "M").Value = "0:30"     Else       .Cells(lRow, "M").Value = "0:00"     End If     If CheckBox2.Value Then       .Cells(lRow, "R").Value = 1000     Else       .Cells(lRow, "R").Value = 0     End If     If CheckBox3.Value Then       .Cells(lRow, "S").Value = 3000     Else       .Cells(lRow, "S").Value = 0     End If     If CheckBox4.Value Then       .Cells(lRow, "T").Value = 1500     Else       .Cells(lRow, "T").Value = 0     End If   End With   Unload Me End Sub

noname#132207
質問者

お礼

ありがとうございました。 また、よろしくお願いします

その他の回答 (1)

  • takibo
  • ベストアンサー率57% (116/200)
回答No.1

もともとのコードをあまりいじらないように修正してみました。 最終行を select するのではなく、行(Row)を取得しています。 Private Sub CommandButton1_Click() 行 = Sheet2.Range("A65536").End(xlUp).Offset(1).Row Sheet2.Range("H" & 行) = TextBox1 Sheet2.Range("I" & 行) = TextBox2 Sheet2.Range("J" & 行) = TextBox3 Sheet2.Range("K" & 行) = TextBox4 Sheet2.Range("L" & 行) = TextBox5 Sheet2.Range("P" & 行) = TextBox6 If CheckBox1.Value = True Then Worksheets(2).Range("M" & 行) = "0:30" Else Worksheets(2).Range("M" & 行) = "0:00" End If If CheckBox2.Value = True Then Worksheets(2).Range("R" & 行) = "1000" Else Worksheets(2).Range("R" & 行) = "0" End If If CheckBox3.Value = True Then Worksheets(2).Range("S" & 行) = "3000" Else Worksheets(2).Range("S" & 行) = "0" End If If CheckBox4.Value = True Then Worksheets(2).Range("T" & 行) = "1500" Else Worksheets(2).Range("T" & 行) = "0" End If Unload Me End Sub

noname#132207
質問者

補足

お答えありがとうございます。 初心者なので、もう少し教えていただければ幸いです。 行 = Sheet2.Range("A65536").End(xlUp).Offset(1).Row の「行」というところには、どういったものを入れればいいか教えていただいてもいいでしょうか。 データの1行目は、H~Tまでの6行目です。 次のデータを入れたい行はH~Tまでの7行目以降となります。 また、各テキストボックス・チェックボックスの「行」というところは、「7」といれればいいんでしょうか?

関連するQ&A