• 締切済み

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 申し訳ないですがよろしくお願い致します。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Sheets("用語").ActiveSheet ActiveSheetもSheets("用語")も、シートを示しているので、エラーになるのは当たり前。 Sheets("用語").ActivateやSheets("用語").Select なら問題無いでしょう。 >UserForm1.TextBox1.Value 記述はこれだけですか? 「UserForm1.TextBox1」の値(Value)を参照しているのに、値に何かを格納したり取出す事をしていないためではないですか? UserForm1.TextBox1.Value = "A" 変数 = UserForm1.TextBox1.Value

cocoku
質問者

お礼

(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)の方はもう少し勉強してみます。 ありがとうございました。

cocoku
質問者

補足

(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 に変更しました。 *が黄色になります。 何度もすみません。

関連するQ&A

専門家に質問してみよう