The more I look at that function the more it doesn't look like it was penned by TT -- it's a bit scenic for him.
An alternate --
Public Sub SetLispVar(Symbol As String, Value as Variant)
Dim vlSet As Object, _
vsym As Variant
Set vlapp = CreateObject("Vl.Application.16")
Set vlFuncs = vlapp.ActiveDocument.Functions
Set vsym = vlFuncs.Item("read").funcall(Symbol)
Set vlSet = vlFuncs.Item("set")
Select Case VarType(Value)
Case vbByte, vbInteger, vbLong: vlSet.funcall vsym, CLng(Value)
Case vbString: vlSet.funcall vsym, CStr(Value)
Case vbDouble: vlSet.funcall vsym, CDbl(Value)
Case vbEmpty: vlSet.funcall vsym, vlFuncs.Item("read").funcall("nil")
Case Else: vlSet.funcall vsym, IIf(IsArray(Value), CVar(Value), Value)
End Select
End Sub