- 締切済み
VBAでフォームからシートへ入力
シートが「回答フォーム」と「用語」と言うのがあります。 (1)「回答フォーム」シートに"入力"ボンタをクリックすると「用語」のシートに入力される。 (2)回答フォーム」シートに"検索"ボンタをクリックすると「用語」のシートからフォームへ表示される。 用語のシートに項目は、A列から、ナンバー、検索、フリガナ、用途、用語、意味とあります。 TextBox1に用語、TextBox2に用途、TextBox3に意味 とあります。 (1)には Private Sub 入力_Click() Sheets("用語").ActiveSheet・・・ここがエラーになります。 「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm1.TextBox1.Value Cells(行, 列 + 1) =UserForm1.TextBox2.Value Cells(行, 列 + 2)=UerForm1.TextBox3.Value UserForm1.TextBox1.SetFocus Cells(行 + 1, 列).Select End Sub (2)には Private Sub CommandButton1_Click() Set sh1 = bk.Worksheets("回答フォーム") Set sh5 = bk.Worksheets("用語") cnt1 = 2 UserForm1.TextBox1.Value・・・・ここのVALUEがエラーになります。 「コンパイルエラー プロパティの使い方が不正です。」 ActiveCell.FormulaR1C1 = "=MATCH(RC[-1],用語!C[-5],0)" n = ActiveCell.Value '用語 sh5.Cells(n, 2).Value = sh1.TextBox1.Value '意味 sh5.Cells(n, 3).Value = sh1.TextBox3.Value '用途 sh5.Cells(n, 4).Value = sh1.TextBox2.Value End Sub 申し訳ないですがよろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hana-hana3
- ベストアンサー率31% (4940/15541)
お礼
(1)の方は解決しました。 Private Sub 入力_Click() Sheets("用語").Select '入力するシートを選ぶ Range("B65536").End(xlUp).Offset(1).Select '空白のセルを選ぶ 行 = ActiveCell.Row 'アクティブセルから下へ 列 = ActiveCell.Column Cells(行, 列) = UserForm1.TextBox1.Value Cells(行, 列 + 1) = UserForm1.TextBox2.Value Cells(行, 列 + 2) = UserForm1.TextBox3.Value UserForm1.TextBox1.SetFocus Cells(行 + 1, 列).Select '次の入力のためテキストボックスを空白にする TextBox1.Value = "" TextBox2.Value = "" TextBox3.Value = "" Sheets("回答フォーム").Select End Sub ありがとうございました。 (2)の方はもう少し勉強してみます。 ありがとうございました。
補足
(1)を Private Sub 入力_Click() Sheets("用語").Select 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm1.TextBox1.Value Cells(行, 列 + 1) = UserForm1.TextBox2.Value Cells(行, 列 + 2) = UserForm1.TextBox3.Value UserForm1.TextBox1.SetFocus Cells(行 + 1, 列).Select End Sub に変更しました。 エラーはでなくなりましたが、用語シートの セルの位置を探しにいかずに アクティブセルから入力さてしまいます。 又(2)を Private Sub CommandButton1_Click() Set sh1 = bk.Worksheets("回答フォーム")・・・・* Set sh5 = bk.Worksheets("用語") cnt1 = 2 UserForm1.TextBox1.Value = "A" A = UserForm1.TextBox1.Value '用語 sh5.Cells(n, 2).Value = sh1.TextBox1.Value '意味 sh5.Cells(n, 3).Value = sh1.TextBox3.Value '用途 sh5.Cells(n, 4).Value = sh1.TextBox2.Value End Sub に変更しました。 *が黄色になります。 何度もすみません。