何箇所か誤解されて作っているようなので、見直してみました。
'Option Explicit Sub macro() Dim lastrow As Long Dim i As Long Dim j As Long '@Add Dim wa As Worksheet Dim wb As String Dim kyuujinn As String Dim result As String Dim main As Range 'kyuujinのポインタ Dim Ans As Range '@Add Workbooks.Open "C:\date\kyuujin.xls" Set wa = Workbooks("kyuujin.xls").Worksheets(1) lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row j = 1 '@Add With Sheet2 For i = 1 To lastrow '▼B列の値を設定する▼ wb = "" '@Del kyuujinn = "" '@Del result = wb + kyuujinn 'main.xlsのB列がある場合 wb = wb & IIf(Sheet1.Range("B" & i).Value <> "", Sheet1.Range("B" & i).Value, "") 'main.xlsのC列がある場合 wb = wb & IIf(Sheet1.Range("C" & i).Value <> "", ":" & Sheet1.Range("C" & i).Value, "") 'main.xlsのD列がある場合 wb = wb & IIf(Sheet1.Range("D" & i).Value <> "", "(" & Sheet1.Range("D" & i).Value & ")", "") ' '求人についてがあるとき ' Set main = wa.Range("A:A").Find(Sheet1.Range("A" & i).Value) ' If Not main Is Nothing Then ' kyuujinn = vbNewLine & "【求人について】" & vbNewLine & _ ' main.Offset(0, 1).Value ' End If ' ' result = wb + kyuujinn Set Ans = .Range("A:A").Find(Sheet1.Range("A" & i).Value) '@Add If Ans Is Nothing Then '@Add '初めてのIDなら新規行にする .Range("A" & j).Value = Sheet1.Range("A" & i).Value '@Mod .Range("B" & j).Value = wb '@Mod '@Add Start j = j + 1 Else ' 2つ目以降のIDなら既存行に文字をつなげる Ans.Offset(0, 1).Value = Ans.Offset(0, 1).Value & vbNewLine & wb '@Mod '@Add End End If Next i For i = 1 To j - 1 '@Add Set main = wa.Range("A:A").Find(.Range("A" & i).Value) '@Mod If Not main Is Nothing Then kyuujinn = vbNewLine & "【求人について】" & vbNewLine & _ main.Offset(0, 1).Value .Range("B" & i).Value = .Range("B" & i).Value & kyuujinn End If '@Del result = wb + kyuujinn Next i '@Add End With Workbooks("kyuujin.xls").Close End Sub
ありがとうございます。おかげで思っていたことが実行できました。