ComprensiĆ³n de variables e constantes en macros de Excel

Neste artigo, aprenderƔs cales son as constantes e variables nas macros, onde se poden usar e cal Ʃ a principal diferenza entre os diferentes tipos de datos. TamƩn se revelarƔ por que se necesitan constantes, se pode simplemente escribir unha variable e nunca cambiala.

Do mesmo xeito que outras linguaxes de programaciĆ³n, os datos pĆ³dense almacenar en variables ou constantes (ambas as cales tamĆ©n se adoitan denominar contedores de datos). Esta Ć© a principal diferenza entre estes conceptos. O primeiro pode cambiar dependendo do que suceda no programa. Pola sĆŗa banda, as constantes establĆ©cense unha vez e non cambian o seu valor.

As constantes poden ser Ćŗtiles se necesitas usar o mesmo valor grande varias veces. En lugar de copiar o nĆŗmero, pode simplemente escribir o nome da constante. Por exemplo, pode usar a constante "Pi" para almacenar Pi, que Ć© un valor constante. Ɖ moi grande, e cada vez Ć© bastante difĆ­cil escribilo ou buscalo e copialo. E asĆ­, abonda con escribir dous caracteres e o ambiente usa automaticamente o nĆŗmero desexado.

O usuario de Excel ten que declarar variables se precisa cambiar o valor almacenado nelas de cando en vez. Por exemplo, pode establecer unha variable chamada sVAT_Rate, que almacenarĆ” a taxa de IVE actual para o produto. Se cambia, pode corrixilo rapidamente. Isto Ć© especialmente Ćŗtil para aqueles que fan negocios nos Estados Unidos, onde algĆŗns bens poden non estar suxeitos ao IVE en absoluto (e este imposto tamĆ©n difire dun estado a outro).

Tipos de datos

Cada contedor de datos pode ser de varios tipos. AquĆ­ tes unha tĆ”boa que describe os tipos estĆ”ndar de informaciĆ³n procesada. Hai moitos deles, e a un principiante pode parecerlle inicialmente que se repiten. Pero este Ć© un sentimento ilusorio. ContinĆŗa lendo para saber por que Ć© tan importante especificar o tipo de datos correcto.

Non se recomenda utilizar un tipo de datos que ocupe mĆ”is espazo na memoria para nĆŗmeros pequenos. Por exemplo, para o nĆŗmero 1, Ć© suficiente usar o tipo Byte. Isto terĆ” un efecto positivo no rendemento do mĆ³dulo executable, especialmente en ordenadores dĆ©biles. Pero aquĆ­ Ć© importante non ir demasiado lonxe. Se usa un tipo de datos demasiado compacto, Ć© posible que non caiba nel un valor de gran tamaƱo.

DeclaraciĆ³n de constantes e variables

DesaconsĆ©llase encarecidamente usar un contedor de datos sen antes declaralo. EntĆ³n poden xurdir unha serie de problemas, para evitar o cal Ć© necesario escribir unhas pequenas liƱas de cĆ³digo con enumeraciĆ³n de variables ou constantes.

Para declarar unha variable, utilĆ­zase a instruciĆ³n Dim. Por exemplo, asĆ­:

Dim Variable_Name como nĆŗmero enteiro

Variable_Name Ć© o nome da variable. A continuaciĆ³n, escrĆ­bese o operador As, indicando o tipo de datos. En lugar das cadeas "Variable_Name" e "Integer", pode inserir o seu propio nome e tipo de datos.

TamĆ©n se poden declarar constantes, pero primeiro debes especificar o seu valor. Unha das opciĆ³ns Ć©:

Const iMaxCount = 5000

Para ser xustos, nalgĆŗns casos pĆ³dese prescindir de declarar unha variable, pero neste caso asignarĆ”selles automaticamente o tipo Variante. Non obstante, isto non se recomenda polos seguintes motivos:

  1. A variante procĆ©dese moito mĆ”is lentamente e, se hai moitas destas variables, o procesamento da informaciĆ³n pĆ³dese ralentizar significativamente en ordenadores dĆ©biles. Parece que eses segundos decidirĆ”n? Pero se tes que escribir un gran nĆŗmero de liƱas de cĆ³digo e despois executalo en ordenadores dĆ©biles (que aĆ­nda se venden, dado que as suites ofimĆ”ticas modernas requiren moita memoria RAM), podes deter completamente o traballo. Hai casos nos que a escrita mal concebida de macros levou Ć” conxelaciĆ³n de libros intelixentes que teƱen unha pequena cantidade de RAM e non estĆ”n deseƱados para realizar tarefas complexas. 
  2. PermĆ­tense erros de impresiĆ³n nos nomes, o que se pode evitar mediante a instruciĆ³n Option Explicit, que lle permite atopar unha variable non declarada, se se atopa. Esta Ć© unha forma sinxela de detectar erros, xa que o mĆ”is mĆ­nimo erro de dixitaciĆ³n fai que o intĆ©rprete non poida identificar a variable. E se activas o modo de declaraciĆ³n de variables, o intĆ©rprete simplemente non che permitirĆ” executar a macro se se atopan contedores de datos que non foron declarados ao principio do mĆ³dulo.
  3. Evite erros causados ā€‹ā€‹por valores variables que non coinciden co tipo de datos. Normalmente, asignar un valor de texto a unha variable enteira xerarĆ” un erro. Si, por unha banda, asĆ­gnase un tipo xenĆ©rico sen declaraciĆ³n, pero se se declaran previamente, pĆ³dense evitar erros aleatorios.

Polo tanto, a pesar de todo, Ć© moi recomendable declarar todas as variables nas macros de Excel.

Hai unha cousa mĆ”is a ter en conta ao declarar variables. Ɖ posible non asignar ningĆŗn valor a unha variable ao declarala, pero neste caso adquire un valor por defecto. Por exemplo:

  1. As liƱas quedan baleiras.
  2. Os nĆŗmeros toman o valor 0.
  3. As variables de tipo booleano considƩranse inicialmente falsas.
  4. A data predeterminada Ć© o 30 de decembro de 1899.

Por exemplo, non precisa asignar o valor 0 a unha variable enteira se non se especificou previamente ningĆŗn valor. Ela xa contĆ©n este nĆŗmero.

OpciĆ³n DeclaraciĆ³n explĆ­cita

Esta declaraciĆ³n permĆ­telle declarar todas as variables que se usan no cĆ³digo VBA e determinar a presenza de contedores non declarados antes de executar o cĆ³digo. Para usar esta funciĆ³n, simplemente escriba unha liƱa de cĆ³digo explĆ­cito de opciĆ³n na parte superior do cĆ³digo macro.

Se precisas incluĆ­r esta declaraciĆ³n no teu cĆ³digo cada vez, podes facelo usando unha configuraciĆ³n especial no editor VBA. Para activar esta opciĆ³n, debes:

  1. Vaia ao contorno de desenvolvemento ao longo do camiƱo - Ferramentas > OpciĆ³ns.
  2. Na xanela que se abre despois, abra a pestana Editor.
  3. E, finalmente, marque a caixa xunto ao elemento Esixir declaraciĆ³n de variables.

Despois de completar estes pasos, faga clic no botĆ³n "Aceptar". 

Isto Ć© todo, agora ao escribir cada nova macro, esta liƱa inserirase na parte superior do cĆ³digo automaticamente.

Ɓmbito de constantes e variables

Cada variable ou constante ten sĆ³ un alcance limitado. Depende de onde o declares.

SupoƱamos que temos unha funciĆ³n Custo_Total(), e usa a variable sVAT_Rate. Dependendo da posiciĆ³n no mĆ³dulo, terĆ” un Ć”mbito diferente:

OpciĆ³n ExplĆ­cita

Dim sVAT_Rate As Single

FunciĆ³n Total_Cost() As Double

.

.

.

End FunciĆ³n

Se unha variable se declara na parte superior dun mĆ³dulo, propĆ”gase por todo ese mĆ³dulo. Ɖ dicir, pĆ³dese ler por todos os procedementos.

Ademais, se un dos procedementos cambiou o valor da variable, o seguinte tamĆ©n lerĆ” este valor corrixido. Pero noutros mĆ³dulos esta variable aĆ­nda non serĆ” lida.

OpciĆ³n ExplĆ­cita

FunciĆ³n Total_Cost() As Double

Dim sVAT_Rate As Single

   .

   .

   .

End FunciĆ³n

Neste caso, a variable declƔrase dentro do procedemento e o intƩrprete lanzarƔ un erro se se usa noutro procedemento.

Se queres que a variable sexa lida por outros mĆ³dulos, debes usar a palabra clave PĆŗblica en lugar da palabra clave Dim. Do mesmo xeito, pode limitar o alcance dunha variable sĆ³ ao mĆ³dulo actual mediante a instruciĆ³n Public, que se escribe en lugar da palabra Dim.

Pode establecer o alcance das constantes dun xeito similar, pero a palabra clave aquĆ­ estĆ” escrita xunto co operador Const.

Aquƭ tes unha tƔboa cun bo exemplo de como funciona con constantes e variables.

OpciĆ³n ExplĆ­cita

sVAT_Taxa pĆŗblica como Ćŗnico

Public Const iMax_Count = 5000

Neste exemplo, podes ver como se usa a palabra clave PĆŗblica para declarar unha variable e o que cĆ³mpre escribir no editor de Visual Basic para declarar unha constante pĆŗblica. O alcance destes contedores de valor aplĆ­case a todos os mĆ³dulos.
OpciĆ³n ExplĆ­cita

Privado sVAT_Rate Como Ćŗnico

Private Const iMax_Count = 5000

AquĆ­, as variables e as constantes declĆ”ranse usando a palabra clave Private. Isto significa que sĆ³ se poden ver dentro do mĆ³dulo actual e que os procedementos doutros mĆ³dulos non poden utilizalos.

Por que se necesitan constantes e variables

O uso de constantes e variables permite aumentar o grao de comprensiĆ³n do cĆ³digo. E se os principiantes en xeral non teƱen preguntas sobre por que se necesitan variables, entĆ³n hai moitas ambigĆ¼idades sobre a necesidade de constantes. E esta pregunta parece, a primeira vista, bastante lĆ³xica. Despois de todo, pode declarar unha variable unha vez e nunca mĆ”is cambiala.

A resposta resulta estar nalgĆŗn lugar no mesmo plano que no que se refire ao uso de tipos de datos que ocupan un gran espazo na memoria. Se estamos a tratar cunha gran cantidade de variables, podemos cambiar accidentalmente un contedor existente. Se o usuario prescribe que un determinado valor nunca cambiarĆ”, entĆ³n o ambiente controlarao automaticamente.

Isto Ć© especialmente importante cando a macro estĆ” escrita por varios programadores. Un pode saber que algunha variable non debe cambiar. E o outro non. Se especificas o operador Const, outro desenvolvedor saberĆ” que este valor non cambia.

Ou, se hai unha constante cun nome, e a variable ten un nome diferente, pero semellante. O desenvolvedor pode simplemente confundilos. Por exemplo, unha variable que non Ć© necesario cambiar chĆ”mase Variable11 e outra que se pode editar chĆ”mase Variable1. Unha persoa pode automaticamente, ao escribir cĆ³digo, saltar accidentalmente unha unidade extra e non notalo. Como resultado, cambiarase o recipiente para os valores, que non se deben tocar.

Ou o propio desenvolvedor pode esquecer que variables pode tocar e cales non. Isto ocorre a miĆŗdo cando o cĆ³digo se escribe durante varias semanas e o seu tamaƱo faise grande. Durante este tempo, Ć© moi doado esquecer mesmo o que significa esta ou aquela variable.

Si, podes facer cos comentarios nesta situaciĆ³n, pero non Ć© mĆ”is doado especificar a palabra Const?

ConclusiĆ³ns

As variables son un compoƱente esencial da programaciĆ³n de macros, que permiten realizar operaciĆ³ns complexas, desde cĆ”lculos ata informar ao usuario sobre certos eventos ou especificar valores especĆ­ficos nas celas dunha folla de cĆ”lculo.

Deben usarse constantes se o desenvolvedor sabe con certeza que o contido destes contedores non cambiarƔ no futuro. RecomƩndase non usar variables no seu lugar, xa que Ʃ posible cometer un erro accidentalmente.

Deixe unha resposta