Мы обновляем устаревшее приложение для работы с электронными таблицами в 64-разрядной версии Excel 365, победа 10. Приложение для работы с электронными таблицами взаимодействует с RESTful API через сообщение HTTP, анализ JSON анализируется с использованием «MSScriptControl.ScriptControl».
Приложение для работы с электронными таблицами не работает в 64-разрядной версии Excel 365, поскольку базовая «среда выполнения сценариев Microsoft» (scrrun.dll) представляет собой 32-разрядный файл и изначально не поддерживается в Excel 365, win 10. Мы рассматривали различные решения, такие как https://github.com/VBA-tools/VBA-JSON однако это решение все еще использует среду выполнения сценариев и завершается ошибкой. Мы также рассмотрели альтернативные среды выполнения сценариев, такие как https://github.com/tablacus/TablacusScriptControl, но мы не смогли бы выпустить новую среду выполнения сценариев на клиентских машинах.
Приведенный ниже код иллюстрирует то, что мы в настоящее время делаем в нашем VBA. код:
Set request = CreateObject("MSXML2.XMLHTTP")
Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
request.Open "post", custom_url, False
jsonRequest = "..."
request.Send (jsonRequest)
If request.Status = 200 Then
scriptControl.Language = "JScript"
scriptControl.AddCode "function GetPropertyValue(jsonObj, propertyName) { return jsonObj[propertyName]; } "
Set json = scriptControl.Eval("(" + request.ResponseText + ")")
End If
Мы искали простое решение в Интернете, но не можем его найти. Как вы анализируете JSON в Excel 365 VBA без необходимости писать собственный анализатор JSON? Существуют ли какие-либо библиотеки, эквивалентные MS, элементу управления MSScript, которые можно использовать в 64-разрядной версии Excel 365?