• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 複数行のデータを1行にするVBA)

Excel 複数行のデータを1行にするVBA

このQ&Aのポイント
  • ExcelのSheet1に存在するA列~T列までの不規則なデータを1行にまとめる方法をVBAで試みましたが、上手くいきません。特に1行にするマクロが途中で止まります。データが多すぎるため、良い方法がないかと試行しています。プロフェッショナルな方に手助けをお願いしたいです。
  • ExcelのSheet1に存在するA列~T列までの不規則なデータを1行にまとめる方法をVBAで試みましたが、特に1行にするマクロが途中で止まります。データが多すぎるため、良い方法がないかと試行しています。プロフェッショナルな方に手助けをお願いしたいです。
  • ExcelのSheet1に存在するA列~T列までのデータを1行にまとめる方法をVBAで試みましたが、上手くいきません。特に1行にするマクロが途中で止まります。データが多すぎるため、良い方法がないかと試行しています。プロフェッショナルな方に手助けをお願いしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

エラーになるのはANo.1の方も指摘されているように列の最大数に引っかかっているからでしょう。 最終的に1列にまとめたいのなら、素直にループを2つ回して処理をした方がシンプルですよ。 Sub sample()   Dim ss As Worksheet   Dim ds As Worksheet   Dim nRow, nCol, nCount   Set ss = Sheets("sheet1")   Set ds = Sheets("sheet2")   ds.Cells.Clear   For nRow = 1 To 1000     For nCol = 1 To 20       If ss.Cells(nRow, nCol).Value <> "" Then         nCount = nCount + 1         ds.Cells(nCount, 1) = ss.Cells(nRow, nCol)       End If     Next nCol   Next nRow End Sub

19630827
質問者

お礼

なるほど さすが素晴らしいです 直接 1行に 思いつきませんでした 助かりました ありがとうございます

その他の回答 (1)

  • utun01
  • ベストアンサー率40% (110/270)
回答No.1

こういうことでしょうか? とりあえず一行に纏める所だけ作ってみました。 Public Sub cptest() Dim sht1 As Worksheet Dim sht2 As Worksheet Dim targetRng As Range Dim rng As Range Dim colcount As Long Set sht1 = ThisWorkbook.Worksheets("Sheet1") Set sht2 = ThisWorkbook.Worksheets("Sheet2") Set targetRng = sht2.Range("A1") colcount = 0 For Each rng In sht1.UsedRange targetRng.Offset(0, colcount).Value = rng.Value colcount = colcount + 1 Next End Sub ちなみにですが、Excel2003までは列が255までしか無いので500列入力することはできません。 また、Excel2007以降でも16384列が最大なので、それ以上の要素数がある場合できません。

19630827
質問者

お礼

ありがとうございます Excel 2003です 原因が分かり よかったです 助かりました

関連するQ&A

専門家に質問してみよう