• ベストアンサー

エクセルマクロ VBAで順次下セルからコピペする方法

VBA初心者です。教えてください。 同一bookに"sheet1"と"sheet2"があります。 "sheet1"セルA1のデータ(数字or文字)をコピーして"sheet2"セルA1にペースト。 次に "sheet1"セルA2のデータ(数字or文字)をコピーして"sheet2"セルA2にペースト。 "sheet1"セルA3のデータ(数字or文字)をコピーして"sheet2"セルA3にペースト。 ↓ セルAxにデータがあれば、繰り返し。 ↓ "sheet1"セルAxが空欄になったら終了。 このような処理は、どう記述したらよいのでしょうか? お願いします。教えてください^^;

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

単純コピーならこれ。 Sub cpy1() Sheets("Sheet1").Columns("A:A").Copy Sheets("Sheet2").Columns("A:A") End Sub もうちょっと複雑にすると・・・ Sub cpy2() Dim i As Long Dim Sht1 As Range Dim Sht2 As Range Set Sht1 = Sheets("Sheet1").Range("A1") Set Sht2 = Sheets("Sheet2").Range("A1") For i = 0 To 65535 If Sht1.Offset(i) <> "" Then Sht2.Offset(i) = Sht1.Offset(i) Else Exit For End If Next End Sub

papa2010
質問者

お礼

ありがとうございます。 早速使わせて頂きます^^

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

練習問題だね。 Sub test2() Dim r As Integer, c As Integer Dim sh1 As Object, sh2 As Object Set sh1 = ActiveWorkbook.Sheets("Sheet1") Set sh2 = ActiveWorkbook.Sheets("Sheet2") r = 1 c = 1 mydata = sh1.Cells(r, c) While mydata <> "" sh2.Cells(r, c) = mydata r = r + 1 mydata = sh1.Cells(r, c) Wend End Sub

papa2010
質問者

お礼

ありがとうございます^^; もっと勉強します><

関連するQ&A