Transport a List

Transport a List

The typical way of entering user-specified data into a list box is one entry at a time; however, you can accept multiple delimited entries at once and add them to a list box with a call to this function. Passing the function a delimited string fills the list box with the values; the list box can be cleared first if requested in the bClear parameter. If you pass an empty string, the values from the list box are used to create a delimited string:

 Function ConvertList(cList As Control, ByVal sText As _	String, ByVal sDelimiter As String, Optional bClear As _	Boolean = False) As String	Dim lLoop As Long	Dim lFind As Long	If Len(sText) Then		If bClear Then cList.Clear		Do			lFind = InStr(sText, sDelimiter)			If lFind Then				cList.AddItem Left$(sText, lFind - 1)				sText = Mid$(sText, lFind + 1)			End If		Loop Until lFind = 0		If Len(sText) Then cList.AddItem sText	Else		For lLoop = 0 To cList.ListCount - 1			If lLoop = cList.ListCount - 1 _				Then sDelimiter = vbNullString			ConvertList = ConvertList & cList.List(lLoop) _				& sDelimiter		Next lLoop	End IfEnd Function

Here’s how you can call it to fill a list, then output the same list using a different delimiter:

 Call ConvertList(List1, "yellow|green|red", "|", True)Debug.Print ConvertList(List1, "", "/")


Share the Post: