Skip to main content
Announcements
SYSTEM MAINTENANCE: Thurs., Sept. 19, 1 AM ET, Platform will be unavailable for approx. 60 minutes.
cancel
Showing results for 
Search instead for 
Did you mean: 
dselgo_eidex
Partner - Creator III
Partner - Creator III

Macro to create string from selected field values

Hello, I'm trying to make a search string to store into a variable for later use via a macro. I already have an action on a button that is doing this, but I'm trying to make a macro to do this instead (the reason is that I want a number of variables to be set according to which button was pushed, and I think it will be easier to maintain in a macro rather than in 10+ Set Variable actions). Currently my Select in Field action is doing this:

='("' & concat({state1}DISTINCT ENTITY_NAME, '"|"') & '")'

I'm trying to get a macro to form the same string value (i.e. ("A"|"B")). Currently I have this in my macro:

Set fieldSelections = ActiveDocument.Fields("ENTITY_NAME", "state1").GetSelectedValues()

Set concatString = "(""" & Join(fieldSelections, """|""") & """)"

but I am receiving an error on the second line. From what I've read, the Join function in VBScript is meant to take an array and delimiter and return a string value (VBScript Join Function). However, the GetSelectedValues() method returns an object of the IArrayOfFieldValue class, which I assume works like an array. Is there any way that I can concatenate the values returned by GetSelectedValues()?

1 Solution

Accepted Solutions
dselgo_eidex
Partner - Creator III
Partner - Creator III
Author

Woops, just learned of the Evaluate() method.

concatString = "(""" & ActiveDocument.Evaluate(concat({state1}DISTINCT ENTITY_NAME, '""|""') & "")"

View solution in original post

1 Reply
dselgo_eidex
Partner - Creator III
Partner - Creator III
Author

Woops, just learned of the Evaluate() method.

concatString = "(""" & ActiveDocument.Evaluate(concat({state1}DISTINCT ENTITY_NAME, '""|""') & "")"