Option Explicit
Function XXX(r As Range) As String
Dim s$, i&, j&, chk As Boolean
s = r.Text
j = Len(s)
For i = 1 To j
If r.Characters(i, 1).Font.Bold Then
If Not chk Then
XXX = XXX & "; "
chk = True
End If
XXX = XXX & Mid(s, i, 1)
Else
chk = False
End If
Next
If Len(XXX) > 0 Then XXX = Right(XXX, Len(XXX) - 2)
End Function
Sub abc()
Dim r, arr(), n&, i&, t
t = Timer
Application.ScreenUpdating = False
n = Range("A10000").End(xlUp).Row
ReDim arr(1 To n - 1, 1 To 1)
For i = 2 To n
arr(i - 1, 1) = XXX(Cells(i, 1))
Next
Range("B2:B" & n) = arr
Application.ScreenUpdating = True
MsgBox Timer - t
End Sub