VBA中使用JAVASCRIPT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | Private Sub CommandButton1_Click() Dim jsstr Dim sb As String Dim oSC As Object Dim i As Integer Set oSC = CreateObjectx86( "MSScriptControl.ScriptControl" ) ' create ActiveX via x86 mshta host Debug.Print TypeName(oSC) ' ScriptControl With oSC jsstr = TextBox1.Text oSC.Language = "javascript" oSC.AddCode ( "var query = " & jsstr) sb = oSC.Eval( "query.学员.length" ) For i = 0 To sb - 1 Step 1 sb = oSC.Eval( "query.学员[ " & i & " ].姓名 " ) MsgBox sb Next i '操作oSC End With CreateObjectx86 , True ' close mshta host window at the end End Sub Function CreateObjectx86( Optional sProgID, Optional bClose = False ) Static oWnd As Object Dim bRunning As Boolean #If Win64 Then bRunning = InStr(TypeName(oWnd), "HTMLWindow" ) > 0 If bClose Then If bRunning Then oWnd.Close Exit Function End If If Not bRunning Then Set oWnd = CreateWindow() oWnd.execScript "Function CreateObjectx86(sProgID): Set CreateObjectx86 = CreateObject(sProgID): End Function" , "VBScript" End If Set CreateObjectx86 = oWnd.CreateObjectx86(sProgID) #Else Set CreateObjectx86 = CreateObject( "MSScriptControl.ScriptControl" ) #End If End Function Function CreateWindow() Dim sSignature, oShellWnd, oProc On Error Resume Next sSignature = Left(CreateObject( "Scriptlet.TypeLib" ).GUID, 38) CreateObject( "WScript.Shell" ).Run "%systemroot%\syswow64\mshta.exe about:" "about:<head><script>moveTo(-32000,-32000);document.title='x86Host'</script><hta:application showintaskbar=no /><object id='shell' classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'><param name=RegisterAsBrowser value=1></object><script>shell.putproperty('" & sSignature & "',document.parentWindow);</script></head>" "" , 0, False Do For Each oShellWnd In CreateObject( "Shell.Application" ).Windows Set CreateWindow = oShellWnd.GetProperty(sSignature) If Err.Number = 0 Then Exit Function Err.Clear Next Loop End Function |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南