Uso de ListBox – ejecutar opciones del Panel de Control con macros en Excel

image

En este artículo les presento un desarrollo en el cual podemos ejecutar algunas opciones del Panel de Control de Windows mediante un formulario de Excel, con macros.

Tenemos una lista de opciones las cuales podemos ejecutar mediante macros. Esta lista deberá llenar un ListBox insertado en un Formulario.

image

Figura 1. Formulario con ListBox.

Ver el video

Ver el video en Youtube: https://www.youtube.com/watch?v=l4QMpCHP18s

[youtube https://www.youtube.com/watch?v=l4QMpCHP18s]

Cómo ejecutamos el Panel de Control con macros en Excel

Lo primero que debemos hacer es declarar la función ShellExecute que nos permitirá ejecutar componentes de Windows. La debemos declarar tanto para Windows de 32 bits como para Windows de 64 bits. El siguiente código debe ir en un Módulo normal.

Visita: Hacer macros compatibles con Excel de 32 y 64 bits

#If VBA7 And Win64 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
            ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
            ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
#Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
                                          ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
                                          ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#End If

En el mismo Módulo donde declaramos la funcion ShellExecute vamos a crear una Subrutina con parámetros para poder usar la función. La Sub se llamará Ejecutar y tendrá como parámetros Nombre y Tipo. Nombre será el archivo .CPL que ejecutará el Panel de Control y Nombre será el tipo de opción que ejecutará.

Sub Ejecutar(Nombre As String, Tipo As String)
    ShellExecute 0, "Open", Nombre, Tipo, "", 1
End Sub

El Formulario tendrá un ListBox para llenarlo con la tabla de opciones, dos TextBox para los encabezados, un botón Ejecutar y un botón Cerrar.

image

Figura 2. Formulario de Excel.

El siguiente código vba permitirá poder manejar las propiedades del ListBox y poder ejecutar la opción elegida.

'---------------------------------------------------------------------------------------
' Module    : UserForm1
' Author    : MVP, Sergio Alejandro Campos
' Date      : 08/02/2016
' Purpose   : Ejecutar Panel de Control de Windows
'---------------------------------------------------------------------------------------
'
Option Explicit
'
Private Sub CommandButton1_Click()
'Ejecutar dependiendo la opción elegida del ListBox
    Dim Cuenta As Integer
    Dim i As Integer
'
    Cuenta = Me.ListBox1.ListCount
'
    For i = 0 To Cuenta - 1
        If Me.ListBox1.Selected(i) = True Then
            Ejecutar "Control.exe", Me.ListBox1.List(i)
        End If
    Next i
'
End Sub
'
Private Sub CommandButton2_Click()
    Unload Me
End Sub
'

Private Sub UserForm_Initialize()
'Trabajamos con las opciones del ListBox
    With Me
        .ListBox1.RowSource = "Lista"
        .ListBox1.BoundColumn = 2
        .ListBox1.ColumnCount = 2
        .ListBox1.ColumnWidths = "80 pt;30 pt"
    End With
End Sub

En la siguiente animación vemos el formulario en acción y el despliegue de las opciones del Panel de Control.

Ejecutar opciones del Panel de Control con macros en Excel

Figura 3. Ejecutar opciones del Panel de Control con macros en Excel.

Descarga el archivo de ejemplo

Para probar las macros de este artículo de clic en Ejecutar Panel de Control. Se abrirá la página de descargas donde deberás elegir el archivo.

You may also like...