• ベストアンサー

VBA Copy/Paste メソッド

エクセル2002使用です。 sheet1のA7からD19セルの値を sheet2のB列の一列に転記をしたいのですが、 コピーが上手くできません。 Copy、Pasteメソッドを使用するときの セルの選択が良くわからないのですが、 よろしくお願いします。 Sub tenki() Dim i As Integer Dim j As Integer For i = 7 To 19 For j = 1 To 4 Cells(i, j).Copy Worksheets("sheet2").Activate Range("B65536").End(xlUp).Select ActiveCell.past ←ここでエラー(注) Next j Next i End Sub (注) エラー  オブジェクトは、このプロパティーまたはメソッドをサポートしていません。

質問者が選んだベストアンサー

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.1

おはようございます。 提示のコードを修正するなら --------------------------------------------- Sub tenki() Dim i As Integer Dim j As Integer For i = 7 To 19 For j = 1 To 4 Cells(i, j).Copy Destination:=Sheets("sheet2").Range("B65536").End(xlUp).Offset(1) Next j Next i End Sub ------------------------------------------------- 尚、Copyの場合は書式(色、罫線等)もコピーされますので、値だけなら、Copyの代わりに Sheets("Sheet2").Range("B65536").End(xlUp).offset(1).value = Cells(i, j).Value としてください。 以上です。

ken123
質問者

お礼

taocat 様 早速のご回答ありがとうございました。 ばっちりでした。 本当にありがとうございました。 今後ともよろしくお願いします。

その他の回答 (1)

  • arata
  • ベストアンサー率49% (139/279)
回答No.2

よくわかんないけど、素直に Sub tenki() Dim i As Integer Dim j As Integer Dim k As Integer Dim objFrom As Worksheet Dim objTo As Worksheet Set objFrom = ThisWorkbook.Worksheets("Sheet1") Set objTo = ThisWorkbook.Worksheets("Sheet2") k = 1 For i = 7 To 19 For j = 1 To 4 objFrom.Cells(i, j).Copy Destination:=objTo.Cells(k, 2) k = k + 1 Next j Next i End Sub taocatさんの回答のように値だけのコピーなら objFrom.Cells(i, j).Copy Destination:=objTo.Cells(k, 2) を objTo.Cells(k, 2).Value = objFrom.Cells(i, j).Value に変更

関連するQ&A