Mi solución
Sub start()
Dim v As Variant
Dim i As Integer
Dim d
Set d = CreateObject("Scripting.Dictionary")
d.Add 0, 12
d.Add 1, 12.5
d.Add 2, 13
d.Add 3, 13.5
d.Add 4, 14
Selection.Font.Name = "Segoe Print"
current_position = 0
current_sp = -1
With Selection
For Each Char In Selection.Characters
If Char <> " " Then
v = Int(Rnd * 50)
i = Int(Rnd * 5)
j = Int(Int(Rnd * 10) / 7) 'do we change char spacing or not
k = Int(Rnd) * 2 - 1
j1 = Int(Int(Rnd * 10) / 7) 'do we change char position or not
k1 = Int(Rnd) * 2 - 1
With Char.Font
.Scaling = 85 + v
.Spacing = -1
.Size = d.Item(i)
.Underline = False
.Color = RGB(30, 30, 30)
If IsNumeric(Char) = True Then
.Spacing = -2
End If
sp = 0
If current_sp = -1 Then
sp = k * j - 1
End If
If current_sp = 0 Then
sp = j - 1
End If
If current_sp = -2 Then
sp = -j - 1
End If
current_sp = sp
.Spacing = sp
pos = 0
If current_position = 0 Then
pos = k1 * j1
End If
If current_position = 1 Then
pos = j1
End If
If current_position = -1 Then
pos = -j1
End If
current_position = pos
.Position = pos
End With
End If
Next Char
End With
End Sub