R
Russ
FYI,
I found these replacement Split and Replace functions on the internet and
tweaked them to work in MacWord 2004. They might also work in Word97.
One of them came from DevX.com
Public Function Split(ByVal sString As String, sDelimiter As String,
Optional iCompare As Integer = vbBinaryCompare) As Variant
Dim sArray() As String, iArrayUpper As Integer, iPosition As Integer
iArrayUpper = 0
iPosition = InStr(1, sString, sDelimiter, iCompare)
Do While iPosition > 0
ReDim Preserve sArray(iArrayUpper)
sArray(iArrayUpper) = Left$(sString, iPosition - 1)
sString = Right$(sString, Len(sString) - iPosition)
iPosition = InStr(1, sString, sDelimiter, iCompare)
iArrayUpper = iArrayUpper + 1
Loop
ReDim Preserve sArray(iArrayUpper)
sArray(iArrayUpper) = sString
Split = sArray
End Function
____________________________________
Public Sub SplitTest()
Dim myArray As Variant
Dim myInt As Integer
myArray = Split("This is a test.", " ")
For myInt = 0 To UBound(myArray)
MsgBox myArray(myInt)
Next myInt
End Sub
_____________________________________
Function Replace(Source As String, Find As String, ReplaceStr As String, _
Optional ByVal Start As Long = 1, Optional Count As Long = -1, _
Optional Compare As Integer = vbTextCompare) As String
'vbBinaryCompare is the other comparison method
Dim findLen As Long
Dim replaceLen As Long
Dim index As Long
Dim counter As Long
findLen = Len(Find)
replaceLen = Len(ReplaceStr)
' this prevents an endless loop
If findLen = 0 Then Err.Raise 5
If Start < 1 Then Start = 1
index = Start
' let's start by assigning the source to the result
Replace = Source
' if Find and ReplaceStr strings have same length, it is possible to
' use an optimized algorithm, based on the Mid$ command
Do
index = InStr(index, Replace, Find, Compare)
If index = 0 Then Exit Do
If findLen = replaceLen Then
' if the find and replace strings have same length
' we can use the faster Mid$ command
Mid$(Replace, index, findLen) = ReplaceStr
Else
' else we must use concatenation
Replace = Left$(Replace, index - 1) & ReplaceStr & Mid$(Replace, _
index + findLen)
End If
' skip over the string just added
index = index + replaceLen
' increment the replacement counter
counter = counter + 1
' Note that the Loop Until test will always fail if Count = -1
Loop Until counter = Count
' The next operation serves to keep complete compatibility with
' VB6's Replace function. You can delete it if you prefer.
If Start > 1 Then Replace = Mid$(Replace, Start)
End Function
I found these replacement Split and Replace functions on the internet and
tweaked them to work in MacWord 2004. They might also work in Word97.
One of them came from DevX.com
Public Function Split(ByVal sString As String, sDelimiter As String,
Optional iCompare As Integer = vbBinaryCompare) As Variant
Dim sArray() As String, iArrayUpper As Integer, iPosition As Integer
iArrayUpper = 0
iPosition = InStr(1, sString, sDelimiter, iCompare)
Do While iPosition > 0
ReDim Preserve sArray(iArrayUpper)
sArray(iArrayUpper) = Left$(sString, iPosition - 1)
sString = Right$(sString, Len(sString) - iPosition)
iPosition = InStr(1, sString, sDelimiter, iCompare)
iArrayUpper = iArrayUpper + 1
Loop
ReDim Preserve sArray(iArrayUpper)
sArray(iArrayUpper) = sString
Split = sArray
End Function
____________________________________
Public Sub SplitTest()
Dim myArray As Variant
Dim myInt As Integer
myArray = Split("This is a test.", " ")
For myInt = 0 To UBound(myArray)
MsgBox myArray(myInt)
Next myInt
End Sub
_____________________________________
Function Replace(Source As String, Find As String, ReplaceStr As String, _
Optional ByVal Start As Long = 1, Optional Count As Long = -1, _
Optional Compare As Integer = vbTextCompare) As String
'vbBinaryCompare is the other comparison method
Dim findLen As Long
Dim replaceLen As Long
Dim index As Long
Dim counter As Long
findLen = Len(Find)
replaceLen = Len(ReplaceStr)
' this prevents an endless loop
If findLen = 0 Then Err.Raise 5
If Start < 1 Then Start = 1
index = Start
' let's start by assigning the source to the result
Replace = Source
' if Find and ReplaceStr strings have same length, it is possible to
' use an optimized algorithm, based on the Mid$ command
Do
index = InStr(index, Replace, Find, Compare)
If index = 0 Then Exit Do
If findLen = replaceLen Then
' if the find and replace strings have same length
' we can use the faster Mid$ command
Mid$(Replace, index, findLen) = ReplaceStr
Else
' else we must use concatenation
Replace = Left$(Replace, index - 1) & ReplaceStr & Mid$(Replace, _
index + findLen)
End If
' skip over the string just added
index = index + replaceLen
' increment the replacement counter
counter = counter + 1
' Note that the Loop Until test will always fail if Count = -1
Loop Until counter = Count
' The next operation serves to keep complete compatibility with
' VB6's Replace function. You can delete it if you prefer.
If Start > 1 Then Replace = Mid$(Replace, Start)
End Function