[[20180510081705]] 『行数分のコピペ』(819) ページの最後に飛ぶ

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

 

『行数分のコピペ』(819)

お世話になります。
初心者なのでお手柔らかにお願いします。
列は決まっていて行数が変わった時のコピぺのマクロについて知りたいのです。
セル a1 の文字列を h5 から行数分貼り付けをしたいのです。
コピペの作業量が多く自動化しろと上司から言われ困っています。
ご教示お願い致します。

< 使用 Excel:Excel2016mac、使用 OS:Windows10 >


手動でやってみれば解ると思うけど、
貼りつける範囲を広げて指定することも可能です。

range("A1").copy range("H5:H10")

あとは、どうやって貼りつけるセル範囲を特定するかですね。
なにかルールがありますよね?
それを説明してください。

(まっつわん) 2018/05/10(木) 08:41


編集被ったけどそのまま

質問がよくわかりませんが、
>行数が変わった時
何から何までどうやって変化したときに、どのようになればいいんでしょうか?

例えば、A5に入力があったらA1をH5にコピーしたい。とか?
(もこな2) 2018/05/10(木) 08:46


まっつわんさん モコナ2さん
回答ありがとうございます。

表の行数が毎回変わるので g列の行数分オフセット関数でコピペできないかなと思ったので
range("A1").copy renge("G5:行数分読み取り) offset(0,1)

こんな感じで考えていたのですが記述の仕方がわからないので…
よろしくお願いします。
(819) 2018/05/10(木) 09:26


値だけ代入したいなら、コピーせずとも、イコールで良いと思います。 G列には何行まで代入すれば良いかの文字列が埋まっていて、それが無くなるまで代入すれば良いのですかね?

 Sub test()
    Dim iR As Long

    iR = Cells(Rows.Count, "G").End(xlUp).Row
    If 5 <= iR Then
        Range("H5").Resize(iR - 4, 1).Value = Range("A1")
    End If
 End Sub
(???) 2018/05/10(木) 09:34

しかし、これだけの事ならば、マクロを使わず、手操作でA1セルをコピーしてから任意の範囲選択後に貼り付け操作するだけなので、練習問題だったりします? 空欄だった時だけ貼りつける、とか条件判定が入るなら、マクロの意味がありますが。
(???) 2018/05/10(木) 09:43

う〜ん。私には状況がまだよくわかりませんけど提示のものを拝見するとたぶん。。。
「G列の5行目〜最終行」までを調べた上でH列の同じ行に、A1セルの内容をコピーしたいってことですかね?

推測があっているとしたら、とりあえずのたたき台としてこんな感じでしょうか

    Sub test1()
        Range("A1").Copy Range(Range("G5"), Range("G5").End(xlDown)).Offset(, 1)
    End Sub

    Sub test2()
        Range("A1").Copy Range(Range("G5"), Cells(Rows.Count, "G").End(xlUp)).Offset(, 1)
    End Sub

    Sub test3()
        Range("A1").Copy Intersect(Range("G5").CurrentRegion, Columns("H"))
    End Sub

それぞれどんなことをしているか解りますか?

(もこな2) 2018/05/10(木) 10:15


まっつわんさん、もこな2さん
回答ありがとうございます。
返事が遅れました。

グループで業務改善をしていますのでパートごとに調べて行っていたので説明が不足してました。

それぞれやり方がありとても参考になりました。
特にtest3のIntersect関数は初めて見ました。
またわからない事が出来ましたら質問させていただきます。
ありがとうございました。
(819) 2018/05/10(木) 20:01


コメント返信:

[ 一覧(最新更新順) ]


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