如何用javascript在excel中创建对象

如何用javascript在excel中创建对象,javascript,excel,vba,Javascript,Excel,Vba,我想知道如何在excel中通过javasript创建shape对象。我知道如何在vba中读取js代码,但不知道如何获取对象的句柄。下面是工作添加示例 Public Sub TestJS() Dim script As New ScriptControl Dim result As Variant script.Language = "JScript" With script .AddCode "function add

我想知道如何在excel中通过javasript创建shape对象。我知道如何在vba中读取js代码,但不知道如何获取对象的句柄。下面是工作添加示例

Public Sub TestJS()
    Dim script As New ScriptControl
    Dim result As Variant
    script.Language = "JScript"
    With script
        .AddCode "function add(a,b) {return 'result from '+a+' + '+b+' is ' +(a+b);}"
        result = .Run("add", 1, 2)
    End With
    
    Cells(1, 1) = result
End Sub
最后,我尝试在excel中运行此代码片段。 js文件和完整代码


欢迎提供任何建议

脚本控件与浏览器javascript主机不同-它没有窗口/文档等,因此无法使用脚本创建对象?也许json for vba可以做到这一点?您可以尝试在表单或工作表中使用WebBrowser控件,这将为您提供一个浏览器主机。我没有看过你正在使用的脚本,所以我不确定它们是否与IE兼容(这是你通过WebBrowser控件得到的)
        PDF417.init(hub3_code);             

        var barcode = PDF417.getBarcodeArray();

        // block sizes (width and height) in pixels
        var bw = 2;
        var bh = 2;

        // create canvas element based on number of columns and rows in barcode
        var canvas = document.createElement('canvas');
        canvas.width = bw * barcode['num_cols'];
        canvas.height = bh * barcode['num_rows'];
        document.getElementById('barcode').appendChild(canvas);

        var ctx = canvas.getContext('2d');