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
Directorio donde se instalará el control
Nombre del grupo en el menú inicio
Confirmación de instalación
-
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
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