質問: copyWs.Range("G28:H28") kingaku1Cell.Copy pasteCell.PasteSpecial Paste:=xlPasteValues, _ Operation:=xlNone, _ SkipBlanks:=False, _ Transpose:=False End Sub
回答: 実際に動かしてみてはいないので、ソースを見て 多分こうなんじゃないかな という程度なのですが... まず A 列は正しくできていますよね。 ``` Set pasteCell = pasteWs.Cells(pasteWs.Rows.Count, "A").End(xlUp).Offset(1) ``` これは、 `pasteWs.Cells(pasteWs.Rows.Count, "A").End(xlUp)` でまず最終行(3行目)に移動し、 `.Offset(1)` で一行下げているのだと思います。 その次に B 列で同じことをしていますが、 ``` Set pasteCell = pasteWs.Cells(pasteWs.Rows.Count, "B").End(xlUp).Offset(1) ``` A 列で 4 行目が作成されているので `pasteWs.Cells(pasteWs.Rows.Count, "B").End(xlUp)` で最終行(4行目)に移動し、 `.Offset(1)` で一行下がっている・・・ という感じで順番に一行ずつ下がっていっているのではないかなと思います。 軽く検索したところ .Offset(1) で一行下げ、 .Offset(0) で同行、 .Offset(0, 1) で同行 1 セル右に移動 みたいなのでその辺でうまくできないかなと思いますが・・・ ただ、私だったら * A列をコピーする前に まず最終行の行番号を取得 * 以降は、「最終行に移動して +1 行」とかではなく最初に取った行番号でこちゃこちゃする の方が良いかなあと思います。(ロジック的に) (全然 試してないですけど。多分できますよね・・・?)