『1行に950個あるデータを、1行13個ずつに区切って縦に並べたい』(コピペンギン)
いつもお世話になっております
表題にあるようにランダムデータが一行に950個並んでいるのですが、A4用紙に印刷したい為に1行に1番目〜13番目のデータ、続きを1行空けて下の行に14番目〜26番目
というように950個分を編集したいのですが、良い方法がありますでしょうか?
今までコピーor切り取りで13個ずつ張り付けていたのでそれよりも効率の良い方法があれば教えて頂きたいです
よろしくお願い致します
< 使用 Excel:Excel2019、使用 OS:Windows11 >
会社PCでご相談させて頂いておりますので、土日祝日を挟む為 確認が25日になってしまいます
返事等遅くなりますがよろしくお願い致します
(コピペンギン) 2025/11/21(金) 19:24:42
Sheet1 の A1〜AMJ1 にデータがあると仮定
=IF(MOD(ROW(),2)=1,INDEX(Sheet1!$A$1:$AMJ$1(INT((ROW()-1)/2)*13)+COLUMN()), "")
(さんつ) 2025/11/21(金) 21:04:43
Sub Test_OutPut()
Dim srcS As Worksheet: Set srcS = Worksheets("Sheet1")
Dim dstS As Worksheet: Set dstS = Worksheets("Sheet2")
Dim srcRow As Long: srcRow = 1 ' 元データは Sheet1 の 1行目
Dim srcCol As Long: srcCol = 1 ' A列(1列目)からスタート
Dim tgtRow As Long: tgtRow = 1 ' Sheet2 の出力開始行
Dim blockSize As Long: blockSize = 13 ' 13個ずつ出力
Dim emptyLine As Long: emptyLine = 1 ' ブロック間に1行空ける
Dim i As Long
'--- Sheet2 を初期化
dstS.Cells.ClearContents
'--- 元データがなくなるまでループ
Do While Not IsEmpty(srcS.Cells(srcRow, srcCol))
' 13個分を Sheet2 の 1列目から順に書き込む
For i = 1 To blockSize
dstS.Cells(tgtRow, i).Value = srcS.Cells(srcRow, srcCol + i - 1).Value
Next i
' 次の書き込み位置(1行空ける)
tgtRow = tgtRow + 1 + emptyLine
' 元データの開始列を13列進める
srcCol = srcCol + blockSize
Loop
MsgBox "終了!", vbInformation
End Sub
(稚拙) 2025/11/22(土) 06:04:28
vba
Sub test()
Dim i&
Const myStep& = 13 '<--- 調整可
Application.ScreenUpdating = False
For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column Step myStep
Cells(Fix(i / myStep) + 2, 1).Resize(, myStep).Value = Cells(1, i).Resize(, myStep).Value '<--- 値貼り付け 速い
'Cells(1, i).Resize(, myStep).Cut Cells(Fix(i / myStep) + 1, 1) '<---コピー 遅い
Next
End Sub
(jindon) 2025/11/22(土) 13:10:35
=IF(MOD(ROW(),2)=1,INDEX(Sheet1!$A$1:$AMJ$1,1,(INT((ROW()-1)/2)*13)+COLUMN()), "")
(さんつ) 2025/11/25(火) 09:30:53
>INDEX の行範囲が抜けていました。 エラーの原因は第1引数と第2の区切りの , が無いからでは? INDEX関数の範囲が1行なので行番号は省略可能です 列(行)番号に小数が有ると自動的に切り捨てされるので INT関数も不要になります =IF(MOD(ROW(),2)=1,INDEX(Sheet1!$A$1:$AMJ$1,(ROW()-1)/2*13+COLUMN()), "") (はてな) 2025/11/25(火) 10:13:22
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.