title: VBScript Array Of Strings - Error 800A000D Type Mismatch
body: <p>I'm having trouble processing a Variant array of strings, returned by a call to method in AutoCAD. The returned array looks to be kosher, but when I try to reference elements in the array, or even include the name of the array in a For Each statement, I get a Type Mismatch error</p>
  
  <p>Here is the code:</p>
  
  <pre><code>Dim acApp 'As AutoCAD.AcadApplication
  Dim acDoc 'As AutoCAD.AcadDocument
  Dim acLyt 'As AutoCAD.AcadLayout
  
  'Get the AutoCAD application...
  On Error Resume Next
  Set acApp = GetObject(, "AutoCAD.Application")
  On Error GoTo 0
  If (acApp Is Nothing) Then
    Set acApp = CreateObject("AutoCAD.Application")
  End If
  
  'Is there a drawing open? If not we'll need to open a new drawing...
  If acApp.Documents.Count &gt; 0 Then
    Set acDoc = acApp.ActiveDocument
  Else
    Set acDoc = acApp.Documents.Add
  End If
  
  'Get a reference to the Model Space layout (always first)...
  Set acLyt = acDoc.Layouts(0)
  
  'Get the list of canonical media names ("A4", "A3" etc) for the plot device for this layout...
  'The AutoCAD documentation says that this method returns a variant, which is an array of strings,
  'which seems to be what is actually returned.'
  'However, I can't reference the array elements without producing a "Type Mismatch" error.
  
  Names = acLyt.GetCanonicalMediaNames()
  
  WScript.Echo VarType(Names) 'This line runs ok, and returns 8200, which is 8192 for Variant Array, + 8 for String.
  WScript.Echo Names(0) 'This line generates the error...
  </code></pre>
  
  <p>I'm baffled, so any help would be appreciated.</p>
  
  <p>Paul</p>