• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA データの整理(表))

VBAを使用してデータの整理を行う方法

このQ&Aのポイント
  • VBAを使用してデータの整理を行いたい場合、縦に並んでいる元データを番号ごとに横に並べることができます。
  • 元データのカタカナ(+数字)ごとに詳細データがありますが、数や内容が異なるため、全体を把握しにくいことがあります。
  • それぞれの番号に対応する詳細データを横に並べる方法や、特定の条件に合わせて番号を入力する方法など、VBAを使ったデータ整理の方法があります。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1630)
回答No.1

F1: ◆ G1: あ H1: ▲ は必ず入れて実行して下さい。 Option Explicit ' Sub Macro1()   Dim ROut As Long   Dim RSta As Long   Dim COut As Integer   Dim RInp As Long   Dim NowKey As String   Dim OldKey As String   Dim Match As Variant   Dim Color As Long '   Color = vbWhite   Cells.Interior.Pattern = xlNone   Cells.UnMerge   Range("F2:R" & Rows.Count).ClearContents   ROut = 1   Application.ScreenUpdating = False '   For RInp = 2 To [A1].End(xlDown).Row     NowKey = Cells(RInp, "A") & Cells(RInp, "B") '     If OldKey <> NowKey Then       Color = Color Xor rgbPeachPuff Xor vbWhite       [F1:R1].Offset(ROut).Interior.Color = Color       [I1:J1].Offset(ROut) = Cells(RInp, "A").Resize(, 2).Value       [Q1:R1].Offset(ROut) = Cells(RInp, "A").Resize(, 2).Value       ROut = ROut + 1       RSta = ROut       COut = 11     End If '     Match = Cells(RInp, "D")     On Error Resume Next     Match = WorksheetFunction.Match(Match, [F1:H1], 0) + 5     On Error GoTo 0 '     If Cells(RInp, "D") = "" Then     ElseIf Val(Match) > 0 Then       Cells(ROut, Match) = NowKey     Else       Cells(ROut, COut).Resize(, 2) = Cells(RInp, "C").Resize(, 2).Value       COut = COut + 2 '       If COut = 17 Then         [F1:R1].Offset(ROut).Interior.Color = Color         ROut = ROut + 1 '         For COut = 6 To 9           Cells(RSta, COut).Resize(ROut - RSta + 1).Merge         Next COut '         For COut = 17 To 18           Cells(RSta, COut).Resize(ROut - RSta + 1).Merge         Next COut         COut = 11       End If     End If     OldKey = NowKey   Next RInp End Sub

kometoshi555
質問者

お礼

ありがとうございます。 サンプルのものではできました。 実際に使いたいのが、もう少し複雑な文字列で(それが原因なのかもわからないのですが) アレンジしたらできなくなってしまい、困っています。 また教えていただけませんでしょうか。 よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう