En Excel VBA en Windows, ¿cómo recorrer un conjunto JSON analizado?

respondiendo mi propia pregunta aquí.
He realizado algunos trabajos con JSON en Excel VBA y muchos resultados para publicar, lo que haré en formato de preguntas y respuestashttps://stackoverflow.com/help/self-answer http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/

Entonces, en otra parte de stackoverflow, uno puede ver preguntas sobre el análisis de JSON en VBA, pero parece que pierden uno o dos trucos.

Para empezar, evito usar bibliotecas de análisis JSON personalizadas y en su lugar uso el método Eval de ScriptControl como base de todo mi código JSON. Y también expresamos una preferencia de las soluciones nativas de Microsoft.

Aquí hay una pregunta previaEn Excel VBA en Windows, ¿cómo mitigar el problema del cruce de sintaxis de puntos de JSON analizado roto por el comportamiento de capitalización de IDE? sobre el cual se construye esta pregunta. Muestra cómo usar VBA.CallByName es más robusto que usar la sintaxis de puntos para atravesar un objeto JSON analizado.

En esta pregunta, se pregunta cómo atravesar una matriz JSON analizada. En primer lugar, aquí hay un enfoque en miniscript con una punta de sombrero para ozmikehttps://stackoverflow.com/users/334106/ozmike

'Tools->References->
'Microsoft Script Control 1.0;  {0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}; C:\Windows\SysWOW64\msscript.ocx

Private Sub TestJSONParsingArrayWithMiniScript()
    'Hat tip to ozmike  https://stackoverflow.com/users/334106/ozmike
    'Based on https://stackoverflow.com/questions/5773683/excel-vba-parsed-json-object-loop#19359035
    Dim oScriptEngine As ScriptControl
    Set oScriptEngine = New ScriptControl
    oScriptEngine.Language = "JScript"
    oScriptEngine.AddCode "Object.prototype.myitem=function( i ) { return this[i] } ; "

    Dim sJsonString As String
    sJsonString = "[ 1234, 2345 ]"

    Dim objJSON As Object
    Set objJSON = oScriptEngine.Eval("(" + sJsonString + ")")

    Debug.Assert objJSON.myitem(0) = 1234
    Debug.Assert objJSON.myitem(1) = 2345


End Sub

Pero créalo o no, VBA.CallByName se puede usar de forma nativa no solo para obtener la longitud de una matriz sino también para acceder a los elementos. Ver respuesta.

Esta es la pregunta 2 de la serie de 5. Aquí está la serie completa

Q1En Excel VBA en Windows, ¿cómo mitigar el problema del cruce de sintaxis de puntos de JSON analizado roto por el comportamiento de capitalización de IDE?

Q2En Excel VBA en Windows, ¿cómo recorrer un conjunto JSON analizado?

Q3En Excel VBA en Windows, ¿cómo obtener una representación JSON en cadena en lugar de “[objeto Object]” para las variables JSON analizadas?

Q4En Windows Excel VBA, ¿cómo obtener claves JSON para evitar el "error de tiempo de ejecución '438': el objeto no admite esta propiedad o método"?

Q5En Excel VBA en Windows, para las variables JSON analizadas, ¿qué es este JScriptTypeInfo de todos modos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta