>>627
Dim r As Variantにしても解決しなかったって、どうしてそれで解決すると思ったの?

というか、何でそんな頑張り?
Dim r As Range
Dim strData As String
Dim lngLen As Long

strData=r.Value
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf

通勤中にスマホで書いたから試してないが、こんな感じでいけない?