Skip to content

ivan-iglesias/excel-vba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VBA Excel

Conjunto de funciones diseñadas para facilitar el desarrollo de macros Excel de forma eficiente y ordenada.

A continuación listo los ficheros existentes, los cuales habrá que importar al proyecto en función de las necesidades.

  • helpers.bas, funciones para el desarrollo de macros.
  • helpers_word.bas, permite adjuntar imágenes, tablas y textos en documentos word.
  • main_template.bas, plantilla inicial de nueva macro.
  • helpers_template.bas, funciones complementarias cuando se hace uso de main_template.

Los cambios realizados en cada versión están documentados en las notas de vesión.

Ejemplos de código

Convención de Nombres

El código de este repositorio sigue la siguiente convención de nombres. No es necesario su uso pero si recomendable para mantener la consistencia con el código de los ficheros helpers.

Variables y constantes

Partimos que un fichero excel puede contener diferentes macros. Cada una de ellas ira en un módulo independiente sin poder acceder a otros, por lo que no usaremos las variables globales. Si queremos usar una variable global a nivel de módulo, para evitar conflictos con otros módulos las declararemos como privadas (const es privada por defecto).

Como se indica a continuación, solo escribiremos en mayúsculas las constantes. Usando la plantilla de macros existen dos excepciones, LOG y CONFIG, las cuales son variables de módulo pero escritas como si fuesen constantes.

' Constant (snake_case with uppercase)
Const MY_CONSTANT as string = "value"

' Module variable (CamelCase)
Private BookName As String

' Function variable (lowerCamelCase)
Dim bookName As String

Al declarar colecciones, si son usadas como listado (puede tener elementos duplicados) el nombre tendrá el prefijo lst, en el caso de ser usada como diccionario (sin duplicados), tendrá dct.

' List
Dim lstNames As Collection

' Dicctionary
Dim dctNames As Collection

Al declarar una variable como variant, para recorrer una colección, podremos añadir opcionalmente el prefijo v.

Dim item As Collection
Dim vItem As Collection

for each item in lstNames
    ' ...
next

for each vItem in lstNames
    ' ...
next

Funciones

El nombre de las funciones estará escrito en UpperCamelCase. Los argumentos que tengan irán también en UpperCamelCase pero su nombre con el prefijo 'p', indicando que la variable es un parámetro.

Private Function GetPopulation(ByVal pFile As String, _
                               ByRef pDctData As Collection) As Integer
    ...
End Function

Operadores & y +

Siempre usaremos el operador & cuando concatenemos cadenas de texto, reservando el + para hacer sumas. Usar el operador + puede dar lugar a problemas si no se usa adecuadamente.

var1 = "10.01"
var2 = 11

var1 + var2   'result = 21.01
var1 & var2   'result = 10.0111

About

Framework para el desarrollo de macros Excel

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages