プロが教える店舗&オフィスのセキュリティ対策術

エクセルのVBA・マクロに関する質問です。
コピーするセルが縦に連続でつながっており、貼り付けするセルが縦に等間隔で飛び飛びになっているときはどのようなコードを書けばよいのでしょうか
具体的にはA4をコピーしてB6に貼り付け、A5をコピーしてB9に貼り付け、A6をコピーしてB12に貼り付け・・・・という感じでコピー・貼り付けをしたいです。

詳しい方のご回答をお待ちしております。

A 回答 (4件)

こんばんは!



コピー&ペーストではなく、値の代入にしています。
一例です。

Sub Sample1()
 Dim i As Long
 Dim cnt As Long
  cnt = 1
   For i = 4 To Cells(Rows.Count, "A").End(xlUp).Row
    cnt = cnt + 1
    Cells(3 * cnt, "B") = Cells(i, "A")
   Next i
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0

Sub test()


Dim i, Target
  i = 6
  For Each Target In ActiveSheet.Range("A4:A" & Cells(Rows.Count, "A").End(xlUp).Row)
    If Target.Value = "" Then Exit For
    Range("B" & i) = Target.Value
    i = i + 3
  Next
End Sub

Sub test1()
Dim i, j
  j = 6
  For i = 4 To Cells(Rows.Count, "A").End(xlUp).Row
    If Range("A" & i) = "" Then Exit For
    Range("B" & j) = Range("A" & i)
    j = j + 3
  Next
End Sub

Sub test2()
Dim i, j
i = 4
j = 6
Do
  Range("B" & j) = Range("A" & i)
  i = i + 1
j = j + 3
Loop Until Range("A" & i).Value = ""
End Sub

他にも書き方はありますが、基本的に#1のくんこばさんの考え方で良いかと。

!回答付いたけど、、書いたので掲示します。重複された方、申し訳ありません。
    • good
    • 0
この回答へのお礼

丁寧なご回答ありがとうございました。
VBA・マクロを勉強し始めたばかりで、困っていました。
参考にさせていただきます。

お礼日時:2019/11/18 21:19

終わりの条件が判らないので元のセルが空欄になったら終了にしました。



Sub Sample1()

Dim 元 As Long
Dim 先 As Long

 元 = 4
 先 = 6
 Do While Cells(元, 1).Value <> ""
  Cells(先, 2).Value = Cells(元, 1).Value
  元 = 元 + 1
  先 = 先 + 3
 Loop

End Sub

または

Sub Sample2()

Dim 元 As Long
Dim 先 As Long

 先 = 6
 For 元 = 4 To Rows.Count
  If Cells(元, 1).Value = "" Then Exit For
  Cells(先, 2).Value = Cells(元, 1).Value
  先 = 先 + 3
 Next

End Sub
    • good
    • 0
この回答へのお礼

丁寧なご回答ありがとうございました。
VBA・マクロを勉強し始めたばかりで、困っていました。
参考にさせていただきます。

お礼日時:2019/11/18 21:19

A列はプラス1しながらB列はプラス3する。


これを繰り返す。

具体的に何が分からんの?
繰り返し文?
コピペ?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A