Visual Basic for Applications:
Trabajando con JSON

Cómo hacerlo:

VBA no soporta nativamente el análisis (parsing) o generación de JSON, así que usaremos un lenguaje de script como JScript (a través del objeto ScriptControl) para analizar cadenas JSON y construir objetos JSON. Así es como puedes analizar una cadena JSON en VBA:

Function ParseJSON(ByVal jsonString As String) As Object
    Dim scriptControl As Object
    Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
    scriptControl.Language = "JScript"
    
    scriptControl.Eval "var obj = (" & jsonString & ")"
    Set ParseJSON = scriptControl.CodeObject.obj
End Function

Sub DemoParseJSON()
    Dim jsonString As String
    jsonString = "{""name"":""John"", ""age"":30, ""city"":""New York""}"
    
    Dim parsed As Object
    Set parsed = ParseJSON(jsonString)
    
    MsgBox "Nombre: " & parsed.name & ", Edad: " & parsed.age & ", Ciudad: " & parsed.city
End Sub

Para generar JSON, podrías usar un enfoque similar, construyendo la cadena JSON mediante la concatenación:

Function GenerateJSON(name As String, age As Integer, city As String) As String
    GenerateJSON = "{""name"":""" & name & """, ""age"":" & age & ", ""city"":""" & city & """}"
End Function

Sub DemoGenerateJSON()
    Dim jsonString As String
    jsonString = GenerateJSON("Jane", 28, "Los Ángeles")
    
    MsgBox jsonString
End Sub

Estudio profundo

Los enfoques mostrados aprovechan el ScriptControl para manejar JSON, externalizando esencialmente el trabajo a un motor de JavaScript. Este es un recurso ingenioso pero no necesariamente la forma más eficiente o moderna de trabajar con JSON en un contexto de VBA. En aplicaciones más complejas, este método podría volverse engorroso e introducir sobrecarga de rendimiento o preocupaciones de seguridad, ya que ScriptControl se ejecuta en un entorno que tiene acceso completo al ordenador anfitrión.

Otros entornos de programación, como Python o JavaScript, ofrecen soporte incorporado para JSON, lo que los hace más adecuados para aplicaciones que requieren una manipulación extensa de JSON. Estos lenguajes proporcionan bibliotecas completas que facilitan no solo el análisis y la generación, sino también la consulta y el formateo de datos JSON.

A pesar de estas limitaciones en VBA, entender cómo trabajar con JSON es vital en un mundo donde el intercambio de datos basado en la web y los archivos de configuración están predominantemente formateados en JSON. Para los programadores de VBA, dominar estas técnicas abre oportunidades para integrarse con APIs web, interpretar archivos de configuración o incluso construir aplicaciones web simples. Sin embargo, cuando los proyectos crecen en complejidad o demandan un alto rendimiento, los desarrolladores podrían considerar aprovechar entornos de programación más amigables con JSON.