電子書籍の厳選無料作品が豊富!

初めまして、エクセルマクロに関して触り始めわからないことがあり登録しました。
初質問になります故、失礼なことが無いように気を付けますが宜しくお願い致します。

早速質問にはいります。

エクセル、マクロの連続処理に関してまだ勉強が足らずイメージが湧きません。
教えていただけると非常に助かります

Worksheets(4).Range("c9:c26") = Worksheets(1).Range("j45:j62").FormulaR1C1
Worksheets(4).Next.Activate

Worksheets(5).Range("c9:c26") = Worksheets(1).Range("K45:K62").FormulaR1C1
Worksheets(5).Next.Activate

Worksheets(6).Range("c9:c26") = Worksheets(1).Range("L45:L62").FormulaR1C1
Worksheets(6).Next.Activate

上記の様に、シート1の(j45:j62)から(AC45:AC62)の32行を事前に用意した
Worksheets(4)~Worksheets(32)の各Range(c9:c26)に張り付けていく

といった処理を行いたいと考えております。
もし可能で御座いましたらご教授いただければ幸いです。
イメージ図も添付しますのでご参考になりましたら幸いです

「【エクセル マクロ】【初質問】メインのシ」の質問画像

質問者からの補足コメント

  • 迅速なご対応ありがとうございます!

    また、大変申し訳ございません。こちらの説明の不手際で誤解させてしまったみたいです。

    私の希望としては、シート(4)にはシート(1)j45:j62、シート(5)にはシート(1)K45:K62
    といった感じでコピー貼り付けする行も一行ずつずらす。といった処理を考えております。

    もし可能でございましたら上記の処理もお教えいただけますと大変助かります…

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/11/07 09:29

A 回答 (2件)

同じ形式のシートを何枚も作るのはほんとに無駄だとは思いますが


やっていることをまとめるだけなら

Dim i As Long
With Worksheets(1).Range("I45:I62")
For i = 4 To 32
Worksheets(i).Range("C9:C26") = .Offset(, 1).Formula
Next i
End With
この回答への補足あり
    • good
    • 1

補足コメントの件です。



No.1さんのマクロの4行目を以下のように修正すればよいです。
Worksheets(i).Range("C9:C26") = .Offset(, i - 3).Formula
    • good
    • 1
この回答へのお礼

問題解決しました!ありがとうございました!

お礼日時:2020/11/11 16:07

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