| ・ENDプロパティ 値があれば以下のように移動して行き、値がある最終セルの行番号、列番号(整数)を得る。 xlToLeft 左方向への移動 xlToRight 右方法への移動 xlUp 上方向への移動 xlDown 下方向への移動 Dim myRow As Integer , myCol As Integer Dim myRng myRow=Range("B3").End(xlDown).Row myCol=Range("B3").End(xlToRight).Column myRng= Range(Range("B3"),Cells(myRow,myCol)).Address myRngには$B$3:$F$9等、データがある範囲のレンジを返してくれる。 空白行があると、そこで止まってしまうので、連続したデータがある行で指定する。 Workbooks(dejital).Worksheets(dejital1).Range("1:65536").Copy Workbooks(myname).Worksheets("dejital").Range("A1") ↓ Workbooks(dejital).Worksheets(dejital1).Range("Rng").Copy Workbooks(myname).Worksheets("dejital").Range("A1") コピーする範囲が少なくなり、Excelデータ量が減る。 myRowとか設定が面倒な場合は直接入力する。 myRng= Range(Range("B3"),Cells(Range("B3").End(xlDown).Row,Range("B3").End(xlToRight).Column).Address Rngは再利用するため、関数として設定しておいた。 ・CurrentRegionプロパティ Endプロパティより簡単。 Dim myRng myRng=Range("B3").CurrentRngion.Address 以上で終わり。 myRngには$B$3:$F$9等、データがある範囲のレンジを返してくれる。 多分、B3を基点として、B列、3行目でデータのある範囲を返してしていそうな感じである。 Workbooks(dejital).Worksheets(dejital1).Range("1:65536").Copy Workbooks(myname).Worksheets("デジタル").Range("A1") ↓ Workbooks(dejital).Worksheets(dejital1).Range("Rng").Copy Workbooks(myname).Worksheets("デジタル").Range("A1") CurrentRngionの方が簡単であるが、連続するデータの行、列を指定できない弱みがある。 使い分けよう。 |