Sub Macro1()
Dim i As Long, oReg As Object
Set oReg = CreateObject("vbscript.regexp")
For i = 1 To [A65536].End(xlUp).Row
With oReg
.Global = True
.IgnoreCase = True
.Pattern = "\W"
Cells(i, 2) = LCase(.Replace(Cells(i, 1).Text, "-"))
End With
Cells(i, 2) = Replace(Cells(i, 2).Text, "--", "-")
Next i
End Sub