プログラミング > Excel & VBA >
work_book1
にデータを集約させる。集約させたい方のデータを.Clear
によって初期化した後、別ファイルを開いて値をコピーしている。データの一部分の場合origin1.Offset(x, y).Resize(w, h).Value = origin2.Offset(x', y').Resize(w, h).Value
とする。一つのデータを書き換える場合.Value(x, y)
と書き換えたい場所を指定してあげる。
Dim work_book1 As Workbook
Dim work_sheet1 As Worksheet
Dim origin1 As Range
Dim work_book2 As Workbook
Dim work_sheet2 As Worksheet
Dim origin2 As Range
Dim table2 As Range
Set work_book1 = Workbooks("work_book_name1")
With work_book1
Set work_sheet1 = .Worksheets("sheet_name1")
With work_sheet1
Set origin1 = .Range("A1")
col1 = origin1.End(xlToRight).Column
row1 = origin1.Offset(Rows.Count - 1, 0).End(xlUp).Row
origin1.Offset(1, 0).Resize(row1, col1).Clear
origin1.Resize(1, col1).AutoFilter
origin1.Resize(1, col1).AutoFilter
With work_book2.Open("work_book_name2", ReadOnly:=True)
Set origin2 = .Worksheets("sheet_name2").Range("A1")
col2 = origin2.End(xlToRight).Column
row2 = origin2.End(xlDown).Row
origin1.Offset(1, 0).Resize(row2, col2).Value = origin2.Offset(1, 0).Resize(row2, col2).Value
.Close SaveChanges:=False
End With
End With
End With
values
に追加。if文による重複判定を記述しなくて良いため便利。コレクションはvalues(i)
でアクセスする。values.count
でコレクション内のデータ数がわかる。