Excel2021 VBA、for文について教えてください。A4用紙を上下に分割して上と下に1人ずつデータの記載をしたいと考えています。記載する内容は別シートにあり、1行目がタイトル(氏名/フリガナ/郵便番号・・・等)があるのでデータ自体は2行目から記載されています。例えば印刷が4人だった時、1枚目の上が1人目、下が2人目2枚目の上が3人目、下が4人目という風に続くのではなく1枚目の上が1人目、下が3人目2枚目の上が2人目、下が4人目・・・にしたい場合for文はどのように記載すればいいのでしょうか?印刷が5人(奇数)だった時は1枚目の上が1人目、下が4人目2枚目の上が2人目、下が5人目3枚目の上が6人目、下が空白という風にしたいです。人数は変動するので変数を使って毎回数えるようにしたいです。よろしくお願い致します。

Excel

1件の回答

回答を書く

1234949

2026-01-26 11:30

+ フォロー

Forは不要です。二分割してTransposeするだけなので。A4用紙のセル番地は環境によって変わるので、とりあえず1行目と2行目にTransposeしています。貼り付け先やシート名は適宜変更してください。

Option Explicit

Sub Sample()

Dim shSrc As Worksheet
Dim shDst As Worksheet
Dim lastRow As Long
Dim m As Long

Set shSrc = Sheets(\u0026quot;別シート\u0026quot;)
Set shDst = Sheets(\u0026quot;印刷用\u0026quot;)

lastRow = shSrc.Cells(shSrc.Rows.Count, 1).End(xlUp).Row

m = (lastRow - 1 + 1) \\ 2

With shDst
.Cells(1, 1).Resize(1, m).Value = _
Application.WorksheetFunction.Transpose( _
shSrc.Cells(2, 1).Resize(m, 1))

.Cells(2, 1).Resize(1, m).Value = _
Application.WorksheetFunction.Transpose( _
shSrc.Cells(2 + m, 1).Resize(m, 1))
End With

End Sub

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有