Sunteți pe pagina 1din 4

Macros de programao

Linguagens como C e assembly possuem sistemas simples de macros, implementados como pr-processadores no compilador ou montador, respectivamente. No caso do C, as macros funcionam pela simples busca e substituio textual pelo cdigo fonte. Dialetos da linguagem Lisp, tais como o Common Lisp e Scheme, possuem sistemas mais elaborados de macros: em Lisp as macros agem como funes que transformam o texto do programa, com toda a linguagem disponvel para expressar tais transformaes. Em contraste com as macros do C, que definem simples substituies de uma sintaxe para outra, uma macro do Lisp pode controlar o processamento de sees do cdigo e do fluxo do algoritmo.

Macros de aplicao
Aplicaes podem usar sistemas anlogos de macros, que permitem ao usurio especificar uma srie de aes em um novo procedimento. As macros so geralmente gravadas ao executar a sequncia uma vez, permitindo aplicao lembrar de tais aes. Usurios avanados podem tambm fazer uso de uma linguagem de programao de macros embutida, que possui acesso direto s funcionalidades da aplicao. Uma linguagem de macro uma linguagem de programao na qual toda a computao feita pela expanso (instanciao) de macros. Geralmente, no so usadas para a programao geral, mas so comuns em aplicaes de processamento de texto. Vrus de macro e Visual Basic for Applications Visual Basic for Applications (VBA) uma linguagem de programao includa no Microsoft Office e algumas outras aplicaes. Ela no uma linguagem de macros, mas suas funcionalidades evoluram e ela acabou substituindo as linguagens de macro anteriores de tais aplicaes, sendo atualmente chamada incorretamente de linguagem de macro. O VBA possui acesso maioria das funes do sistema operacional e suporta execuo automtica de cdigo quando um documento aberto. Tal arquitetura torna relativamente simples a construo de vrus informticos, conhecidos popularmente como vrus de macro. Principais macros para Office O Microsoft Office mantm diversas instrues macros gravadas em seu interior. Estas instrues so padro entre os diversos aplicativos do pacote. Atalhos so definidos e esto disponveis para todos os usurios.

Ctrl + P = imprimir; arquivo Ctrl + T = selecionar; tudo

Ctrl + B = salvar Ctrl + N = negrito Ctrl + I = itlico Ctrl + S = sublinhado Ctrl + C = copiar Ctrl + V = colar

Alm disso, podemos gravar novas instrues e usar os atalhos disponveis, criar um boto ou acess-las usando Alt+F8 no teclado. Usando macros, possvel, por exemplo, imprimir arquivo de nica pgina vrias vezes com nmeros diferentes a cada impresso, colar especial valores dentro do Excel sem repetir esta operao diversas vezes, estas aes permitem que os usurios trabalhem com maior facilidade. Para construir uma macro dentro do Office basta acessar o Menu Ferramentas, Macros, clicar em Gravar Nova Macro e realizar a sequncia desejada. Esta instruo estar disponvel na pasta de trabalho que for gravada. Para usar estas instrues macros em todas as pastas de trabalho grave-as na pasta pessoal de macros. Por segurana, no execute macros em seu computador de pessoas desconhecidas ou de fontes duvidosas, fcil produzir estas macros, assim pea explicaes nos foruns da Internet e lembre-se sempre de entender o que um determinado comando far no computador mantendo o nvel de segurana das macros do Office como mdio. Exemplo de Macro para Excel Vamos agora criar uma macro para que ao se digitar na coluna A do Excel o computador mostre a data e hora que este determinado texto foi digitado. Observe que o VBA orientado a eventos, ou seja quando ocorrer uma determinada ao o aplicativo responder executando as linhas de cdigo definidas pelo desenvolvedor, neste caso usaremos o comando Change (ao digitar) da planilha.
'Definio das instrues, nome do procedimento Private Sub Worksheet_Change(ByVal Target As Range) 'Operador de condio, realiza quando verdade If Target.Column = 1 Then 'Inserindo data e hora na coluna B do planilha na linha referente da coluna A Cells(Target.Row, 2).Value = FormatDateTime((Str(Now)), vbGeneralDate) 'Fim da operao de condio End If 'Fim do procedimento End Sub

Esta uma execuo simples, porm auxilia no cadastro de entradas e sadas das pessoas de um determinado local, registro de monitoramento de processos, previso e chegada de encomendas confrontando com a hora real de chegada, diminuindo a necessidade de digitao de datas e horas pelo operador da planilha, alm de ser mais seguro desde que a data e hora do sistema esteja correta.

Outra forma de automatizar os trabalhos e minimizar a necessidade de frmulas enormes que so copiadas entre muitas planilhas, a construo de funes Functions dentro de um mdulo macro do Excel. Estas funes podero ser solicitadas dentro do mdulo onde foram criadas ou tambm pode-se grav-las dentro da Pasta Pessoal de Macros e serem usadas por todas as planilhas abertas. Segundo o Help do Visual Basic, a funo necessita do mdulo para executar e as macros devero estar habilitadas, pois, do contrrio no funcionaro. Ento, caso mude de computador leve junto a pasta onde esto armazenadas suas funes e faa rotineiramente cpias de segurana e guarde-as em local seguro. A funo abaixo pode ser utilizada para contar quantas vezes ocorre um determinado dia da semana num intervalo de tempo, retornando um nmero inteiro. A utilizao desta funo poder ser feita por qualquer verso do Microsoft Excel, assim, abra a pasta de trabalho onde deseja inserir a funo, v na barra de ferramenta Visual Basic, insira um mdulo e edite a funo abaixo:
Function ContaDiaSemana(DataInicial As Date, Datafinal As Date, DiaProcurado As Integer) Dim DataIni As Date Dim ContaDia As Integer ContaDia = 0 For DataIni = DataInicial To Datafinal If Weekday(DataIni) = DiaProcurado Then ContaDia = ContaDia + 1

A partir deste ponto, a funo poder ser executada como uma funo normal do Excel e estar disponvel no menu Inserir Funo na categoria Todas. Para us-la dever considerar a varivel DataInicial como uma data vlida, DataFinal tambm como uma data vlida, porm maior que DataInicial e DiaProcurado um nmero inteiro maior ou igual a um (1) e menor ou igual a sete (7), onde 1 = domingo, 2 = segunda-feira, 3 = tera-feira... 7 = sbado. Exemplo: Uma empresa de eventos far seu oramento anual, que ter incio no primeiro dia de 2008 e encerrar obviamente no ltimo dia do mesmo ano, sabe-se que seus proventos so calculados sobre os sbados, assim necessrio saber quantos sbados h no referido intervalo. Assim, usando uma planilha do Excel, pode-se definir os seguintes valores nas clulas:

A1 = 01/01/2008 data inicial do perodo; A2 = 31/12/2008 data final do perodo, repare que esta data maior que a anterior; A3 = 7 nmero que representa o sbado, dia da semana procurado;

A funo usada para calcular este problema ser editada na clula A4, a qual receber a contagem do dia definido, sendo:

= ContaDiaSemana(A1, A2, A3), que retornar um nmero inteiro igual a cinquenta e dois (52) que a quantidade de sbados do ano de 2008. Para somar mais de um dia pode-se usar tambm: = ContaDiaSemana(A1, A2, 7)+ContaDiaSemana(A1, A2, 1), o resultado ser a soma dos sbados e domingos do intervalo. Como no exemplo citado acima, possvel tambm criar outras funes, bastando para isso um bom problema e alguns neurnios disponveis. Exemplo de Macro em C Como exemplo, vamos usar o #define. Esse um preprocessado em C, em que se tem a estrutura: #define nome texto_de_substituio. Outro exemplo o #include, no qual se declara a biblioteca em que se buscam as funes fora da linguagem padro do C. A stdio.h uma biblioteca no padro do C, na qual se tem a famosa funo printf, uma chamada de sistema para impresso na tela. Bom, vamos ao exemplo.

#define infinito for(;;) aqui todas as palavras infinito do cdigo sero substituidas por for(;;)

Macros de teclado ou mouse


Macros de teclado ou mouse permitem que sequncias curtas de teclas pressionadas ou aes do mouse substituam longas sequncias de comandos, automatizando tarefas repetitivas. Da mesma forma que macros de aplicao, estas macros podem ser definidas tanto por gravao ou por linguagem de programao de macros.

S-ar putea să vă placă și