是否可以在VBA中托管Web服务器?

Dav*_*vid 11 vba winsock

我想托管一个Web服务器,并希望使用VBA来完成它.这可能吗?我只是这样做是为了证明某人是错的,并且真的想制作这个节目.

那么有可能制作一个非常简单的Web服务器(只是监听get请求)吗?非常感谢帮助.

编辑

我正在尝试这样的事情

Sub startServer()
    Set wunsock = CreateObject("OSWINSCK.Winsock")
    wunsock.LocalPort = 80
    wunsock.Listen
End Sub

Sub wunsock_ConnectionRequest(ByVal requestID As Long)
    If sockMain.State <> sckClosed Then
        sockMain.Close
    End If
    sockMain.Accept requestID
End Sub

Private Sub wunsock_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    sockMain.GetData strData, vbString
    txtStatus.Text = txtStatus.Text & _
        strData & vbCrLf
End Sub
Run Code Online (Sandbox Code Playgroud)

但它不起作用?

mic*_*eln 5

虽然这是一个相当老的问题,但我仍然想提一下,我使用简单的 VBA 宏和一些 Winsock C 调用构建了一个 Excel 托管的 REST Web 服务器,如 Daniel A. White 所提议的。

我将其添加为答案而不是评论,因为它是作为模块化库构建的,因此您可以根据您的需求进行调整,而其他人可能正是需要这种库。它可以提供工作表、基本文件,还可以使用IWebController监听特定路由来创建自定义挂钩(OP 在评论中提到了这一点):

http://github.com/michaelneu/webxcel

要使用它,您必须将类/模块导入到您的工作簿中,或者让构建脚本为您创建一个新的类/模块。有关如何从 VBA 中启动服务器的信息,请参阅Main.bas 。


Dan*_*ite 1

我不确定我是否完全理解这个问题。一般来说,您不是“托管网络服务器”,而是托管网站。

但是,如果您可以使用 VBA 进行 TCP 套接字,那么您可以按照 HTTP 标准协议创建一个极其简单的 Web 服务器。

编辑:根据您的评论,是的,只要您可以打开 TCP 套接字,您就可以制作一个简单的 Web 服务器。