• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロについて)

エクセルのマクロについて

このQ&Aのポイント
  • エクセルのマクロについてプログラムを組んでいますが、特定のセルにデータを移動したい場合、セルの位置を順次変更する方法を教えてください。
  • エクセルのマクロを使用してデータを移動する際、特定のセルの位置を順次変更する方法を教えてください。
  • エクセルのマクロでデータを移動する際、特定のセルにデータを順次入力していく方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

方法1: Sub 張付() Dim i As Long Dim ws1 as worksheet, ws2 As Worksheet ’初心者さんのよくある勘違い Sheets("一覧表").Select Set ws1 = Worksheets("一覧表") Set ws2 = Worksheets("データー") For i = 5 To ws2.Cells(Rows.Count, 1).End(xlUp).Row ws1.cells(i, "B").value = ws2.Cells(i, 2).value    'セルBのiに氏名を入力 ws1.cells(i, "C").value = ws2.Cells(i, 3).value    'セルCのiに年齢を入力 ws1.cells(i, "D").value = ws2.Cells(i, 4).value    'セルDのiに電話番号を入力 方法2: >B5をB6に順次プラスする方法 一個ずつちんたらやってく必要はない Sub 張付() Dim n As Long Dim ws1 as worksheet, ws2 As Worksheet Set ws1 = Worksheets("一覧表") Set ws2 = Worksheets("データー") n = ws2.Cells(Rows.Count, 1).End(xlUp).Row ws1.Range("B5:B" & n).value = ws2.range("B5:B" & n).value    'セルB5以下に氏名を入力 ws1.Range("C5:C" & n).value = ws2.range("C5:C" & n).value    'セルC5以下に年齢を入力 ws1.Range("D5:D" & n).value = ws2.range("D5:D" & n).value    'セルD5以下に電話番号を入力 #コピー貼り付けても一緒。

uechan1946
質問者

お礼

keithin 様 回答ありがとうございました。 少ない行数で良いファイルができました。 今回は、方法1を使わせてもらいました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! ループさせる場合は Sub Sample1() Dim i As Long Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = Worksheets("一覧表") Set ws2 = Worksheets("データー") For i = 5 To ws2.Cells(Rows.Count, "B").End(xlUp).Row With ws1.Cells(i, "B") .Value = ws2.Cells(i, "B") .Offset(, 1) = ws2.Cells(i, "C") .Offset(, 2) = ws2.Cells(i, "D") End With Next i End Sub 今回の場合、そっくりそのままコピー&ペーストでよさそうなので Sub Sample2() Dim lastRow As Long Dim wS As Worksheet Set wS = Worksheets("一覧表") With Worksheets("データー") lastRow = .Cells(Rows.Count, "A").End(xlUp).Row Range(.Cells(5, "B"), .Cells(lastRow, "D")).Copy wS.Range("B5") End With End Sub でも大丈夫だと思います。m(_ _)m

uechan1946
質問者

お礼

tom04 様 回答ありがとうございました。 また、エクセルの質問では、たびたび回答ありがとうございます。