|
どうも、初めまして。初心者Aといいます。
自分が作りたいのは、エクセルのファイルを開いたら「入力フォーム(下で言うUserForm1)」を表示して、その中にあるテキストボックスに文字を入力してもらい、同じフォーム中のコマンドボタンを押すと入力した文字をエクセルの表の一番左のセル一列(Aの列)に上のセルから順次表示させていくものです。コマンドボタンを押したら下のセルに進んでいくみたいな。
それに伴い以下のコードをそれぞれ「ThisWorkbook」、「UserForm1」に記述しました。
'以下、ThisWorkbookに記述。
Public gyou As Integer
Private Sub Workbook_Open()
gyou = 2
UserForm1.Show
End Sub
'以下、UserForm1に記述。
Private Sub CommandButton1_Click()
ThisWorkbook.Worksheets(1).Cells(ThisWorkbook.gyou, 1) = TextBox1.Text
TextBox1.Text = ""
ThisWorkbook.gyou = ThisWorkbook.gyou + 1
End Sub
また、変数「gyou」をPublicで定義した意味は他のフォームでも必要な変数だからです。またまた、変数「gyou」の最初に「2」をいれたのはエクセルの表でいう「A列」の上から2番目の行から始めたい!という意図的なこだわりです。
そして、上記のコードにデバックをかけると「UserForm1」側の「ThisWorkbook.Worksheets(1).Cells(ThisWorkbook.gyou, 1) = TextBox1.Text」のところで「実行時エラー'1004':(改行)アプリケーション定義またはオブジェクト定義のエラーです。」と出てしまいます。
多分、「ThisWorkbook.Worksheets(1).Cells(ThisWorkbook.gyou, 1)」のところだと自分は(短くて浅い経験をもとに)憶測を踏んでいろいろと定義の部分を変えましたが、どれも失敗でした。もう、自分的にはなす術がありません。
どうか、お助け下さい。長々とした下手な日本語ですいませんでした。
|
|