Uso de Winsock en Excel vba

Referencia: http://www.ostrosoft.com

El uso del control Winsock se orienta a aplicaciones cliente servidor en lenguajes de Visual Basic, comenzando con el VB 6.0, aunque también en los lenguajes .NET (VB, C#, ASP), lenguajes Web (VBScript, JavaScript), relacionales (SQL Server) y por supuesto también en nuestro querido vba.

Es una de las consultas más hechas por los programadores de vba, el uso de Winsock en Excel, sobretodo los que vienen de un VB 6.0 y saben de la funcionalidad de dicho control.

Procedimiento para usarlo en Excel

Primeramente debemos tener el control .OCX de Winsock en nuestra PC. Si acaso tienes instalado VB 6. en tu PC, sólo debemos hacer la referencia en el IDE de vba.

Si no tienes (por que no necesitas) VB 6.0, entonces podrás descargarte el control desde esta página: http://www.ostrosoft.com/oswinsck.asp#inst.

Instalar el control

  • Descargamos el archivo oswinsck.exe de la página anteriormente dada.
  • Después de descargado, procedemos a instalarlo en nuestra PC:

    Formulario de bienvenida

    image

    Directorio donde se instalará el control

     image

    Nombre del grupo en el menú inicio

    image

    Confirmación de instalación

    image

  • Entramos al IDE de vba en Excel.
  • Entramos al menú Herramientas > Referencias.
  • Examinamos al ruta donde elegimos que se guardara y elegimos el archivo OSWinsck.ocx para guardar la referencia.

  • Creamos un formulario nuevos y en la barra de controles, damos con el click derecho y elegimos Controles adicionales… y elegimos Winsock component.

Muestro un simple código para saber el nombre de PC y la IP. Por supuesto que esto es sólo una funcional del control, ya que la primordial será el conectarnos con otras PC de nuestra red, pero esa es otra historia que seguramente encontrarás mucha información al respecto.

Mensaje de prueba

image

Código de ejemplo

Sub MostrarIp()
Dim Msg1, Msg2
Msg1 = "El nombre de la PC es: " & vbTab & UserForm1.Winsock1.LocalHostName
Msg2 = Msg1 & vbNewLine & _
    "Nuestra ip es: " & vbTab & vbTab & UserForm1.Winsock1.LocalIP
MsgBox Msg2, vbInformation, "EXCELeINFO"
End Sub

You may also like...