Cursos de Excel VBA (9): Procedimientos de Excel VBA
Este artículo examina el procedimiento de Excel VBA. Consúltelo cuando codifique Excel VBA.
Esta es una continuación del artículo anterior.
Curso Excel VBA (8): Conceptos básicos del lenguaje Excel VBA: tipos de datos, estructuras de datos
4. Procedimientos de Excel VBA
4.1. Cómo configurar la interfaz de usuario (UI)
En Excel VBA, hay tres formas de configurar la interfaz de usuario, como recibir valores del usuario o mostrar el progreso.
4.1.1. Interfaz de usuario con hoja de Excel
Este es el método más común. Agregue controles como botones, cuadros de texto y casillas de verificación a la hoja de Excel y maneje eventos. Es el más fácil de implementar y conveniente de usar, ya que puede hacer clic en un botón mientras mira los datos.
Este método tiene un inconveniente. Si hace clic en un botón después de cambiar la resolución de la pantalla, el tamaño del botón continúa aumentando o el tamaño del texto disminuye. Principalmente, cuando se cambia el monitor externo o se conecta a un proyector de haz, la resolución de la pantalla cambia, y este fenómeno casi siempre ocurre si la hoja de Excel que contiene el control está abierta en ese momento. Este fenómeno ocurre cuando se usa un control ActiveX y no ocurre cuando se usa un control de formulario.
4.1.2. Interfaz de usuario con formulario de usuario
Este es un método para manejar eventos al crear un objeto UserForm separado y agregarle controles.
Puede que no sea adecuado para trabajar mientras se ingresan/modifican datos, como una lista de valores de entrada, ya que puede cubrir la pantalla. Como se muestra en la figura a continuación, es adecuado para mostrar información como ProgressBar.
4.1.2. Interfaz de usuario con barra de cinta
Este es el método más laborioso y complicado. Agregue pestañas y botones personalizados a la interfaz de la barra de la cinta, que se modificó desde Excel 2007, y controle los eventos. Este es un ejemplo de una barra de cinta personalizada que un empleado subalterno hizo y me envió hace unos años.
Herramienta de verificación de estándares de datos (* Nota: Herramienta de verificación estándar de datos Descripción Contenido, Descargar) proporcionó la interfaz de usuario en la hoja de Excel, pero si la cambia a la interfaz de usuario de la barra de cinta, será similar a la anterior.
El contenido de la barra de cinta es bastante extenso por sí solo, por lo que lo organizaré en un artículo separado más adelante. Vea abajo.
- https://docs.microsoft.com/en-us/archive/msdn-magazine/2007/february/extend-office-2007-with-your-own-ribbon-tabs-and-controls
- https://docs.microsoft.com/en-us/office/vba/library-reference/concepts/overview-of-the-office-fluent-ribbon
4.2. Cómo ejecutar código VBA
Hay al menos tres formas de ejecutar código VBA.
4.2.1. Ejecutar en evento de clic de botón
Así es como se crea un botón como se muestra en la figura anterior y se escribe una instrucción que ejecuta el código VBA en el evento de clic del botón. Esto es adecuado cuando se proporciona una forma de ejecutarlo en la interfaz de usuario.
4.2.2. Coloque el cursor sobre el código fuente a ejecutar y ejecútelo con una tecla de método abreviado
Coloque el cursor en el código de procedimiento Sub o Function en VBE (Visual Basic Editor) y presione la tecla de acceso directo. F5corre con También puede hacer clic en el botón ejecutar (▶️) en la barra de herramientas. Este método solo funciona para procedimientos Sub y Function sin parámetros.
Este método es adecuado para pruebas simples cuando no hay necesidad de proporcionar un método de ejecución externo.
4.2.3. Ejecutar en ventana inmediata
Este método consiste en ingresar el nombre y el parámetro de un procedimiento Sub o Function en la ventana de Ejecución Inmediata y presionar la tecla Enter para ejecutarlo. Este método es adecuado para pruebas simples de procedimientos Sub y Function con parámetros.
4.3. Cómo utilizar la herramienta Ventana inmediata
La ventana Ejecución inmediata se puede utilizar para una variedad de propósitos, como la depuración y la salida de mensajes, además de la ejecución de macros, como se explicó anteriormente.
- ejecutar macro
- Ejecutar ingresando el nombre del procedimiento de función o sub en el módulo
- También se pueden ejecutar procedimientos con parámetros.
- Comprobar valores de variables en tiempo de ejecución
- Se usa mientras se detiene en un punto de interrupción
- Imprimir o ? Después de ingresar el nombre de la variable, confirme el valor con la tecla Enter.
- Comprobar mensaje de salida
- Verifique la salida con Debug.Print
4.4. Cómo utilizar la herramienta Examinar objetos
Publicación anterior Curso de Excel VBA (3): Modelo de objetos de Excel Eché un vistazo rápido a la herramienta de búsqueda de objetos en .
Ejecute 'Examinar objeto' en el menú 'Ver' de VBE. El atajo es F2 ser.
La herramienta de exploración de objetos se compone de lo siguiente.
- Filtrar y buscar
- Puede consultar la lista de todas las bibliotecas que se proporcionan de forma predeterminada en Excel y las bibliotecas que se han agregado como referencias, y seleccionar una biblioteca específica.
- La lista completa de la biblioteca se puede buscar por nombre de clase o nombre de miembro.
- Lista de clase
- Muestra una lista de todas las clases, módulos y enumeraciones de la biblioteca seleccionada.
- Lista de miembros
- Muestra la lista de procedimientos, funciones, propiedades, etc. que son miembros de la clase o módulo seleccionado en la lista de clases.
- Información de miembro
- Muestra los detalles del procedimiento, función, propiedad, etc. seleccionados de la lista de miembros.
Los tipos de iconos que se muestran en la herramienta de búsqueda de objetos y sus significados son los siguientes.
Para obtener más información sobre la herramienta de exploración de objetos, consulte la siguiente URL.
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/object-browser
4.5. Cómo mejorar el rendimiento de VBA
Cómo mejorar el rendimiento de VBA está escrito en un artículo separado.
Patrones de codificación de VBA: mejora del rendimiento de VBA
Para resumir el artículo anterior, establezca la variable global en un valor de mejora del rendimiento antes de ingresar el código que se procesará y cámbielo al valor original una vez que finalice el procesamiento del código. Consulte el siguiente código.
'코드 진입 부분 Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.DisplayAlerts = False '실행할 코드가 들어 갈 부분 ... '코드 종료 부분 Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.DisplayAlerts = True
4.6. Cómo usar la grabadora de macros
La grabadora de macros de Excel es muy útil. Por ejemplo, si está creando una nueva tabla dinámica, un nuevo gráfico o no sabe cómo escribir tareas repetitivas en código VBA, la grabadora de macros puede ser de gran ayuda.
Si inicia la grabadora de macros, procesa una tarea con el teclado o el mouse y luego detiene la grabadora de macros, puede ver que los detalles del trabajo procesado hasta el momento están escritos en código VBA. Es posible codificar mucho más rápido y con mayor precisión modificando y usando el código creado de esta manera que escribiendo código VBA desde cero.
La grabación de macros comienza haciendo clic en el botón 'Grabar macro' en la pestaña Desarrollador o en la barra de estado inferior de la siguiente manera.
Si hace clic en el botón 'Grabar macro', aparecerá una ventana para ingresar el nombre de la macro, la tecla de método abreviado, la ubicación para guardar y la descripción de la siguiente manera.
Si hace clic en el botón 'Aceptar' después de ingresar la información de la macro, el estado de grabación cambia de la siguiente manera.
Grabemos la designación del borde de los datos pegados, la configuración del encabezado (color de fondo, fuente, alineación central), la ocultación de la línea de cuadrícula y las funciones de cuadro congelado con la grabadora de macros. Si inicia la grabación de macros y ejecuta la función usando el teclado o el mouse, el resultado es como se muestra en el lado derecho de la figura a continuación.
Detenga la grabación de macros y verifique el código VBA generado de la siguiente manera.
Sub 매크로1() ' ' 매크로1 매크로 ' Columns("A:B").Select Columns("A:B").EntireColumn.AutoFit Range("A1:B11").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With Range("A1:B1").Select Selection.Font.Bold = True With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With Range("A2").Select ActiveWindow.FreezePanes = True ActiveWindow.DisplayGridlines = False End Sub
Analizando este código:
Incluso si no está familiarizado con el modelo de objetos de Excel o la sintaxis de VBA, puede crear macros útiles utilizando el código VBA creado de esta manera. Si usa bien la grabadora de macros, la codificación VBA se vuelve fácil.
Como referencia, Excel es la única grabadora de macros entre las suites de Ms-Office.
4.7. Principios básicos a seguir al programar
Se recomienda mantener los siguientes principios básicos al codificar usando Excel VBA.
- No coloque el valor cambiado dentro, pero reciba la entrada desde el exterior (IU).
- No lo estructure como un Módulo/Clase desde el principio, enfóquese solo en el propósito de la implementación al principio.
- La estructuración toma tiempo adicional, lo que no debería afectar el cronograma de trabajo original.
- VBA es un medio (herramienta), no un fin. Tenga cuidado de no dar la vuelta.
- Si se usa más de 3 veces o si está claro que se usará continuamente en el futuro, refactorícelo y estructúrelo en Módulo/Clase considerando la reutilización. (Hacer -> Copiar -> Refactorización)
En este artículo, analizamos los procedimientos que es bueno saber al codificar Excel VBA. A continuación, veremos ejemplos de herramientas desarrolladas y utilizadas con Excel VBA. Esta será la última publicación de la conferencia Excel VBA.
<< Lista de artículos relacionados >>
- Inicie el curso de Excel VBA. (Aviso de conferencia, hazaña. Por qué recomendamos Excel VBA)
- Curso Excel VBA(1): Descripción general de Excel VBA
- Curso de Excel VBA (2): Conceptos básicos de Excel VBA
- Curso de Excel VBA (3): Modelo de objetos de Excel
- Curso de Excel VBA (4): Trabajar con el modelo de objetos de Excel
- Curso de Excel VBA (5): extensión de archivo de Excel, VBE, configuración de fuente
- Curso Excel VBA (6): Conceptos básicos del lenguaje Excel VBA - Variables
- Curso Excel VBA (7): Conceptos básicos del lenguaje Excel VBA - Sintaxis
- Curso Excel VBA (8): Conceptos básicos del lenguaje Excel VBA: tipos de datos, estructuras de datos
- Cursos de Excel VBA (9): Procedimientos de Excel VBA
- Curso Excel VBA (10): Herramientas desarrolladas y utilizadas con Excel VBA
- Tabla de contenido completa para cursos de Excel VBA