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

締切り済みの質問

Excelの複数Bookでの転記と行移動処理

Excel2003を使っています。
質問内容のシナリオは以下です。

1)Book1-Sheet1の行単位データをBook2-Sheet1に転記させる。
2)Book2-Sheet1ではデータの入っていない最終行に1)のデータが入る。
3)2)が終わると自動的に次の行に移動する
4)1)~3)を繰り返す(複数あるため)

これの2)と3)のVBAをどちらのBookにどのように記載するのかがよくわかりません。

現在はBook1とBook2をどちらも開き、Book1でマクロをで転記しています。
Book2では転記される行を選択し、
次のデータのために手動で(転記された次の)1行を選択しております。

投稿日時 - 2007-06-09 19:56:34

QNo.3070438

困ってます

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

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

回答(1)

ANo.1

私の場合ですので、必ずというわけではありませんが、、、
Book1にVBAを記載し、実行します。
--------------------------------------------------------------
Dim 行I as Long '貼付元側カウンタ
Dim 行O as Long '貼付先側カウンタ
Dim 貼付WORK as String '貼付用ワーク
行I = 1
行O = 1
Workbooks.Open FileName:=ThisWorkbook.Path & "Book2.xls"   
Do Until Range("A" & 行I).Value = ""
Windows("Book1.xls").Activate
  Sheets("sheet1").Select
貼付WORK = Range("A" & 行I).Value 'Book1のデータを貼付WORKへ
Windows("Book2.xls").Activate
Sheets("sheet1").Select
Range("A" & 行O).Value = 貼付WORK '貼付WORKのデータをBook2へ
行I = 行I + 1
行O = 行O + 1
Loop
--------------------------------------------------------------
上の分はBook1のデータを1行目からBook2の1行目にコピーするような処理です。行Oの行番号をInputbox関数で指定する、またはBook2.xlsの空白行をDo~Loopで探すなどの処理を加えればBook2の任意の行からコピーを開始することができると思います。ちなみに上の例は、処理の概要のみを載せていますので、このままコピーしても正しく動かないかもしれませんが、、、ご了承ください。

投稿日時 - 2007-06-10 18:31:42

補足

頂きましたものを参考に作ってみました。

Sub RowSamp1()
Dim myLastRow As Long
With ActiveSheet.UsedRange
myLastRow = .Rows(.Rows.Count).Row
End With
End Sub
Function Rownext(myLastRow)
With Selection.Rows
Activate Rows(myLastRow + 1).Row
End With
End Function

へたくそですが、これで動作しました。
どうもお世話になりました。ありがとうございます。

投稿日時 - 2007-06-11 21:25:42

お礼

kawakeroさん

ご親切な解説をいただき、どうもありがとうございます。
貼り付けのワークよりも、自動でデータのない行に移動するものを
考えておりまして。。。
行番号の設定をしない方法があればと思っております。
このスクリプトは別件で拝借させていただきます。

投稿日時 - 2007-06-11 18:18:25

あなたにオススメの質問