[[20171211112553]] 『3行置きにコピペするマクロについて』(あ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『3行置きにコピペするマクロについて』(あ)

エクセルマクロ初心者です。

下記のようなコードをマクロで記録いたしました。


Range("C6").Select

    Selection.Copy
    Range("O6,O9,O12,O15,O18,O21,O24,O27,O30,O33,O36,O39,O42,O45,O48").Select
    Range("O48").Activate
    ActiveSheet.Paste
    Application.CutCopyMode = False


Range("C6,O6,O9,O12,O15,O18,O21,O24,O27,O30,O33,O36,O39,O42,O45,O48").Select

上記のコードについて、nセルから3行ごとにと、簡単に応用化したいです。

教えて頂けると幸いです。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


コピーせずとも、1セルずつ代入してはいかがでしょう?

 Sub test()
    Dim i As Long
    For i = 6 To 48 Step 3
        Cells(i, "O").Value = Range("C6")
    Next i
 End Sub
(???) 2017/12/11(月) 11:36

ちなみに、おっしゃっている通り3行ずつ選択するなら、以下。
Unionは覚えにくい命令なので、お薦めしません。

 Sub test()
    Dim R As Range
    Dim i As Long

    Set R = Range("O6")
    For i = 9 To 48 Step 3
        Set R = Union(R, Cells(i, "O"))
    Next i
    R.Value = Range("C6")
 End Sub
(???) 2017/12/11(月) 11:43

ありがとうございます。
大変助かりました。
(あ) 2017/12/11(月) 11:47

先程の件ですが

Dim i As Long

    For i = 6 To 48 Step 3           'iという変数は6-48で3行ごとに'
        Cells(i, "O").Value = Range("C6")       ’セル(i,O)の値に C6の値'
    Next i

上記のコメント欄のように、かんがえました。
1点質問があるのですが、
これをコピペを命令する場合( Selection.Copy)と (ActiveSheet.Paste)
と(Application.CutCopyMode = False)の命令はどこに入れればよろしいでしょうか??

(あ) 2017/12/11(月) 12:06


セル指定で、イコールで値を代入しているし、コピーもペーストも不要ですよ。クリップボードを使っていないので、CutCopyModeの操作も不要です。

こっちのセル→クリップボード→あっちのセル

こうだったのを、

あっちのセル = こっちのセル

こう変えた訳です。
(???) 2017/12/11(月) 12:50


有難うございました。

理解でき、正常に作動いたしました
(あ) 2017/12/11(月) 13:15


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.