Here's your code modified.
Sub test()
Dim cell As Range
Application.ScreenUpdating = False
For Each cell In Range("B2", Range("B" & Rows.Count).End(xlUp))
Call concatenate_cells_formats(cell.Offset(, -1), cell.Resize(, 5)) 'Destination column A, Source B:F
Next cell
Application.ScreenUpdating = True
End Sub
Sub concatenate_cells_formats(cell As Range, source As Range)
Dim c As Range
Dim i As Integer
i = 1
With cell
.Value = vbNullString
.ClearFormats
For Each c In source
If Len(c.Value) Then .Value = .Value & "/" & Trim(c)
Next c
.Value = Trim(Mid(.Value, 2))
For Each c In source
With .Characters(Start:=i, Length:=Len(Trim(c))).Font
.Name = c.Font.Name
.FontStyle = c.Font.FontStyle
.Size = c.Font.Size
.Strikethrough = c.Font.Strikethrough
.Superscript = c.Font.Superscript
.Subscript = c.Font.Subscript
.OutlineFont = c.Font.OutlineFont
.Shadow = c.Font.Shadow
.Underline = c.Font.Underline
.ColorIndex = c.Font.ColorIndex
End With
.Characters(Start:=i + Len(c) + 1, Length:=1).Font.Size = 1
i = i + Len(Trim(c)) + 1
Next c
End With
End Sub
Bookmarks