質問: VBAの質問です。 "main"(ここがデータが入力されているシート) "シート1"(ここが加工したデータを記載したいシート) "main"のG3~O3をコピーして、"シート1"のC1に行と列を入れ替えて貼り付け "main"に戻りG4~O4をコピーして、"シート1"のC列の先ほど貼り付けたデータの 下に一行空けてC11から先ほどと同様に行と列を入れ替えて貼り付け。 この動作を3行目から20行目までと件数も少なかったので、 今まではマクロの記録を使い処理していたのですが、 この度、一気に90行ほど増えるようになってしまい、 今までの手法では今後が思いやられるようになり、 どうにかマクロでと思ってはみたものの、付け焼刃のコードでは 上手くも動かず、お力をお借り出来ますでしょうか。 稚拙な文章にて説明にも至らない点もあるかと思いますが、 どうぞよろしくお願いいたします。
回答: 一例です。 Sub Sample() Dim rngS As Range 'コピー元 Dim rngD As Range '貼り付け先 Dim E As Long 'コピー元最終行 With Worksheets("main") Set rngS = .Range("G3:O3") E = .Range("G" & .Rows.Count).End(xlUp).Row End With Set rngD = Worksheets("シート1").Range("C1") Application.ScreenUpdating = False Do rngS.Copy rngD.PasteSpecial xlPasteAll, Transpose:=True Set rngD = rngD.Offset(rngS.Columns.Count + 1) Set rngS = rngS.Offset(1) Loop Until rngS.Row > E Application.CutCopyMode = False Application.ScreenUpdating = True End Sub