Rage(“B1:C2”).Select のような複数のセルをActiveCellで指定する方法には
ActiveCellがA1とした場合
Excel.Range(Excel.ActiveCell.Offset(0, 1), Excel.ActiveCell.Offset(1, 2)).Select
Rangeオブジェクトって深いわ。
「,」カンマで範囲が指定できるんね。やってみるもんだ。複数も範囲を複数指定もできるしね。
また、
Excel.RangeもあるけどWorkSheet.Rangeもある。
ActiveCellは、Excel.ActiveCell(Excel.Application.ActiveCell)しか無い。
以下は、完成したコード
Option Explicit
Dim pwb As Workbook, cwb As Workbook
Sub main()
myChdir
getXlsFile
myCopy
End Sub
Sub myChdir()
VBA.ChDir VBA.Replace(VBA.CurDir, "Documents", "Downloads")
End Sub
Sub getXlsFile()
Dim x
x = VBA.Dir("*_hitetu_kmc.xls")
Do Until VBA.Now - VBA.FileDateTime(x) < 1 / 24
x = Dir
Loop
Excel.Workbooks.Add x
Set cwb = Excel.Workbooks(2)
Set pwb = Excel.Workbooks(1)
End Sub
Sub myCopy()
cwb.Worksheets("伸銅・アルミ圧延").Select
Excel.Range("A1").Select
Do Until Excel.ActiveCell = "はく"
Excel.ActiveCell.Offset(1, 0).Select
Loop
cwb.Activate
Excel.Range(Excel.ActiveCell.Offset(0, 1), Excel.ActiveCell.Offset(0, 7)).Select
Selection.Copy
pwb.Activate
Sheets("Sheet1").Select
Excel.Range("b1").Select
Do Until "" = Excel.ActiveCell
Excel.ActiveCell.Offset(1, 0).Select
Loop
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
cwb.Close
End Sub