シート間貼り付けコードの説明
先日のコードについて補足していこうと思います。
ワークシートをオブジェクト変数へ代入
以下ではDim ** As Worksheet で宣言した、ワークシートのオブジェクト変数へシート名を指定して代入しています。
オブジェクト変数へ代入することで、コード内で何度もWorksheets("***")を記載しなくてよくなります。
Set houseHoldWs = ThisWorkbook.Worksheets("家計簿") Set nowHouseholdWs = ThisWorkbook.Worksheets("家計簿当月表示")
ワークシートのようなオブジェクトを変数へ代入するためには、普通に=ではなく、変数の前にSetを書く必要があります。
ここでは「家計簿」と「家計簿当月表示」をオブジェクト変数に代入しています。
Range+Cellsで任意の範囲の値を転記
以下ではRange(A1:B10)などの範囲指定の代わりに、Range(Cells(x,y),Cells(a,b))の記載で範囲を任意のサイズにしております。
Cells(x,y).Resize(a,b)でも同じ記述できますね。
Resizeに慣れていないため、Range+Cellsを使用していますがこっちのほうがいいですね…
nowHouseholdWs.Range(nowHouseholdWs.Cells(cumagoSRow, cumagoSCol), nowHouseholdWs.Cells(cumagoERow, cumagoECol)).Value = _ nowHouseholdWs.Range(nowHouseholdWs.Cells(cumSRow, cumSCol), nowHouseholdWs.Cells(cumERow, cumECol)).Value
小ネタを少し…
ws指定は ws.Range(ws.Cells(… とRangeとCells両方に記載しないとバグります。昔それで少し時間使いました。