将来SEなら、
これは、コントロールブレイクがわからないとできません。
必須です。学習してください。
Public Sub AA()
Dim i As Long
Dim j As Long
Dim k As Long
Dim WBA As String
Dim WBB As String
Dim WBC As String
Dim WBD As String
Dim WBE As String
Dim WBF As String
Dim WBG As String
Dim BKSHOHIN As String
Dim WOLD As String
Dim WNEW As String
Sheets(1).Select
Range("A1").Select
i = 1
i = i + 1
WBA = Chr(34) & Cells(i, 1) & Chr(34)
WBB = Chr(34) & Cells(i, 2) & Chr(34)
WBC = Chr(34) & Cells(i, 3) & Chr(34)
WBD = Chr(34) & Cells(i, 4) & Chr(34)
WBE = Chr(34) & Cells(i, 5) & Chr(34)
WBF = Chr(34) & Cells(i, 6) & Chr(34)
WBG = Chr(34) & Cells(i, 7) & Chr(34)
WNEW = WBA & "," & WBB & "," & WBC & "," & WBD & "," & WBE
WOLD = WNEW
BKSHOHIN = ""
BKSHOHIN = BKSHOHIN & "," & WBF & "," & WBG
MsgBox ("処理30行までで、結果は C:\TEMP\KEKKA.CSV に出力します。")
Open "C:\TEMP\KEKKA.CSV" For Output As #1
For i = 3 To 30
WBA = Chr(34) & Cells(i, 1) & Chr(34)
WBB = Chr(34) & Cells(i, 2) & Chr(34)
WBC = Chr(34) & Cells(i, 3) & Chr(34)
WBD = Chr(34) & Cells(i, 4) & Chr(34)
WBE = Chr(34) & Cells(i, 5) & Chr(34)
WBF = Chr(34) & Cells(i, 6) & Chr(34)
WBG = Chr(34) & Cells(i, 7) & Chr(34)
WNEW = WBA & "," & WBB & "," & WBC & "," & WBD & "," & WBE
If WNEW <> WOLD Then
Print #1, WOLD & BKSHOHIN
BKSHOHIN = ""
WOLD = ""
Else
End If
BKSHOHIN = BKSHOHIN & "," & WBF & "," & WBG
WOLD = WNEW
Next i
Print #1, WOLD & BKSHOHIN
Close #1
MsgBox ("終了")
End Sub
ざっと作成しました。結果はCSVに出ます。
1行ずつ下へ処理して、A列からG列まで退避しながら
A列からE列までが同じか判定、違えば前行分の右にF列値G列値を付与、
これの繰り返しです。
体裁、効率化、結果は別シートへ、等ありますが、
基本的な箇所はそのまま使えるので後はアレンジしてください。
お礼
ありがとうございました。 他の解答をひっぱってくるのをベストに選んでいいのかちょっと迷ったのですが、 質問している方も返答している方も非常にわかりやすい内容でしたので、 大変助かりました。