こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

申し訳ないですがよろしくお願い致します。

投稿日時 - 2006-05-15 12:37:54

QNo.2152336

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

>Sheets("用語").ActiveSheet

ActiveSheetもSheets("用語")も、シートを示しているので、エラーになるのは当たり前。
Sheets("用語").ActivateやSheets("用語").Select
なら問題無いでしょう。

>UserForm1.TextBox1.Value

記述はこれだけですか?
「UserForm1.TextBox1」の値(Value)を参照しているのに、値に何かを格納したり取出す事をしていないためではないですか?

UserForm1.TextBox1.Value = "A"
変数 = UserForm1.TextBox1.Value

投稿日時 - 2006-05-15 12:51:23

補足

(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

に変更しました。
*が黄色になります。

何度もすみません。

投稿日時 - 2006-05-15 14:12:19

お礼

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

投稿日時 - 2006-05-15 15:39:22

あなたにオススメの質問