一回も披露したことのない豆知識

初心者でございます。

テキストボックスに入力したデータを、データベースに行を挿入してその行の各セルへ転記する方法として、以下の方法をとっています。

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を使用しております)

A 回答 (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は処理してるうちにどちらがアクチブになっているか
判別はむつかしい場合があり、あまりお勧めしない。
ーー
第三者で良くわからないが、質問のコードは行挿入しているが、ほんとにする必要があるのかな。
最終行の次の行に、テキストボックスから、値代入ではダメなのかな。そういうケースが多いので、ちょっと疑問に思ったので。
    • good
    • 0

シート名を指定してあげればよいだけでは?



例えばsheet1とう名のシートのレンジは
 Worksheets("sheet1").Range("○○")
のようになります。(シート、Rangeなどは変数でも可)

 Set sht = AvtiveSheet や Set sht = Worksheets("sheet1")
とすることで、対象のシートがsht(変数)に代入されますので、
 sht.Range("A1") = sht2.Range("B2")
のような記述で、シート間にまたがった処理を行うことも可能になります。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A