- 締切済み
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行を選択しております。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kawakero
- ベストアンサー率0% (0/3)
私の場合ですので、必ずというわけではありませんが、、、 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の任意の行からコピーを開始することができると思います。ちなみに上の例は、処理の概要のみを載せていますので、このままコピーしても正しく動かないかもしれませんが、、、ご了承ください。
お礼
kawakeroさん ご親切な解説をいただき、どうもありがとうございます。 貼り付けのワークよりも、自動でデータのない行に移動するものを 考えておりまして。。。 行番号の設定をしない方法があればと思っております。 このスクリプトは別件で拝借させていただきます。
補足
頂きましたものを参考に作ってみました。 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 へたくそですが、これで動作しました。 どうもお世話になりました。ありがとうございます。