• 締切済み

テキストボックスから、複数のシートに転記する方法・・・

初心者でございます。 テキストボックスに入力したデータを、データベースに行を挿入してその行の各セルへ転記する方法として、以下の方法をとっています。 Private Sub 登録Button1_Click() Dim rowscount As Long rowscount = Range("データ範囲").Rows.Count Range("データ範囲").Cells(rowscount, 1).EntireRow.Insert Range("データ範囲").Cells(rowscount, 2) = TextBox1.Text このテキストボックスに入力したデータを別の2つのシートへも転記したいのですが、どのように複数の転記先を指定してよいかわかりません。どうかご教授お願いいたします。(Excel2003を使用しております)

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

(1)Dim Sh1,Sh2 Set Sh1=Worksheets("Sheet1”)   Set Sh2=Worksheets("Sheet2”) と定義し  Sh1. Sh2.  をそれぞれセル指定の頭につける (2)Worksheets("Sheet1"). Worksheets("Sheet2"). をそれぞれセル指定の頭につける (3)Sheets(1).、Sheets(2). をそれぞれセル指定の頭につける。 2シートのシートタブを左に寄せておく必要がある。 -- 上記はシートの特定方法の解説そのものである。 シートの指定にはほかに、Next,Previousもあるが、使わないでよいだろう。 ーー それぞれ、Range(・・)やCells(・・)がコード上で出てきたら しつこいぐらい念入りに、どちらのシートか判断して、上記シートの名前をつけること。 ーーー ActiveSheetは処理してるうちにどちらがアクチブになっているか 判別はむつかしい場合があり、あまりお勧めしない。 ーー 第三者で良くわからないが、質問のコードは行挿入しているが、ほんとにする必要があるのかな。 最終行の次の行に、テキストボックスから、値代入ではダメなのかな。そういうケースが多いので、ちょっと疑問に思ったので。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

シート名を指定してあげればよいだけでは? 例えばsheet1とう名のシートのレンジは  Worksheets("sheet1").Range("○○") のようになります。(シート、Rangeなどは変数でも可)  Set sht = AvtiveSheet や Set sht = Worksheets("sheet1") とすることで、対象のシートがsht(変数)に代入されますので、  sht.Range("A1") = sht2.Range("B2") のような記述で、シート間にまたがった処理を行うことも可能になります。