エクセルVBAにおいて、シート5のA1~A2をシート6のB1~B2にコピペしたいときに、
ページをアクティブにせずにやる方法を探しています。
https://www.relief.jp/docs/excel-vba-cell-copy-paste-no-sheet-change.html
を参考に以下のコードを作成しました。
VBA
1Sub コピペ() 2' 1)シート5のA1~A2をシート6のB1~B2にコピペしたい 3 ThisWorkbook.Worksheets("5").Range("A1").Copy Destination:=ThisWorkbook.Worksheets("6").Range("B1") 4 ThisWorkbook.Worksheets("5").Range("A1:A2").Copy Destination:=ThisWorkbook.Worksheets("6").Range("B1:B2") 5 6'2)下の二つはエラーになる。 7 ThisWorkbook.Worksheets("5").Range(Columns(1), Columns(2)).Copy Destination:=ThisWorkbook.Worksheets("6").Range(Columns(3), Columns(4)) 8 ThisWorkbook.Worksheets("5").Range(Cells(1, 1), Cells(1, 2)).Copy Destination:=ThisWorkbook.Worksheets("6").Range(Cells(2, 1), Cells(2, 2)) 9 10 '2-1)ただし、同じシートへのコピペで、 11 シート5をアクティブな状態で実行したらエラーにはならない。 12 ThisWorkbook.Worksheets("5").Range(Columns(1), Columns(2)).Copy Destination:=ThisWorkbook.Worksheets("5").Range(Columns(3), Columns(4)) 13 ThisWorkbook.Worksheets("5").Range(Cells(1, 1), Cells(1, 2)).Copy Destination:=ThisWorkbook.Worksheets("5").Range(Cells(2, 1), Cells(2, 2)) 14End Sub
1)の方法でできたのですが、
以下のページにあるように、
Range("A" & i)と書くよりもCells(i,1)としたほうが、変数を用いるときに使いやすいので、
なんとか2)のようなCells(i,1)のやりかたで、アクティブにせずに他のシートにコピペする方法を
探しております。ご教授ください。よろしくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/08 01:43