Criação de Macros

Electro 99
Velha Guarda
Velha Guarda
Mensagens: 1084
Registado: 26 fev 2009, 18:21
Enviou: 5 vezes
Agradecimento recebido: 3 vezes

Re: Criação de Macros

Mensagem por Electro 99 »

Reparo que utilizas aqui uma Friend Function. Fiz alguma pesquisa sobre isso e reparo que serve para permitir o acesso a dados privados ou protegidos de uma classe de fora da classe.

Não conhecia :)

Para que serve o Optional ByVal? Que diferença faz do ByVal?


nokPT
Velha Guarda
Velha Guarda
Mensagens: 228
Registado: 26 set 2008, 22:45
Agradecimento recebido: 2 vezes

Re: Criação de Macros

Mensagem por nokPT »

Basicamente há 3 tipos de funções, subrotinas ou dados:

Private -> só podem ser acedidos por membros do corrente sub-programa (classe ou módulo)
Friend -> podem ser acedidos por todos membros do programa inteiro
Public -> podem se acedidos por outros programas

(acho que é assim)

Eu tenho este programa que te enviei dividido por vários módulos e classes (um para envio de email, outro para interface com excel, outro para gravar dados outro para ...), para poder aceder a partir de outro módulo (por exemplo envio de emails) tive que passar para Friend


Quando chamas uma função os dados podem ser ByVal ou ByRef, se não disseres nada é ByVal, resumidamente quando chamas por ByVal passa uma cópia do valor da variável para a rotina, se nessa rotina fizeres alteração ao valor dessa variável, só é válida dentro da rotina quando terminar o valor da variável volta ao que estava dantes, ao chamar por ByRef, está a passar a referência (endereço de memória ou apontador) para a variável, se fizeres uma alteração ao valor da variável dentro da rotina ela mantêm-se fora da rotina.
Ricardo Timóteo
Electro 99
Velha Guarda
Velha Guarda
Mensagens: 1084
Registado: 26 fev 2009, 18:21
Enviou: 5 vezes
Agradecimento recebido: 3 vezes

Re: Criação de Macros

Mensagem por Electro 99 »

Tu escreveste

"Optional ByVal Mes As Integer = 0"

1º - Qual é a diferença entre o Optional ByVal e o ByVal?

2º - Tu na atribuição de variáveis já as carregas com um valor? Neste caso, está a limpar...

3 º - Para que serve o Try?


Abraço,

Electro 99
nokPT
Velha Guarda
Velha Guarda
Mensagens: 228
Registado: 26 set 2008, 22:45
Agradecimento recebido: 2 vezes

Re: Criação de Macros

Mensagem por nokPT »

Opcional quer dizer que a variável é opcional, quando chamas a rotina podes incluí-la ou não. Por exemplo, neste caso estou a usar a mesma rotina para fazer relatórios anuais, mensais e diários, quando o relatório é mensal, não faz sentido dizer meter a variável dia, então disse que a variável Dia era opcional, o mesmo acontece para a variável Mês, não é necessária nos relatório anuais (todos os meses) por isso é opcional.

As variáveis opcionais têm que ser declaradas no fim, depois da primeira variável opcional, todas a seguir têm que ser opcionais.

AS variáveis opcionais têm que ser declaras com um valor, por norma é o valor que iras eventualmente usar mais vezes, por exemplo crias uma rotina onde agravas um valor de X porcento, e por norma agravas de 20%, então declaras essa variável como opcional = 0,20. Se quiseres agravar de 20%, não incluis essa variável quando chamas a rotina, se o valor for diferente, incluis a percentagem que quiseres.

O Try é muito útil, serve para apanhar erro sem crashar a aplicação. Juntamente com o Try usamos o Catch e por vezes o Finally. imagina que na tua aplicação divides qualquer coisa por zero, ou vais buscar um valor num array fora de índice ou mandas ler um ficheiro que não existe ou etc... se não metes o Try, quando correres o programa fora do VB ele crasha e fecha, é um bocado irritante para o utilizador. Se usares um Try e aparecer um erro desses, o programa para, salta para o Catch, nesse Catch metes por exemplo uma mensagem a dizer erro XPTO ou faz outra coisa, mas o programa continua a correr.

Podes ainda usar um Finally, para garantir que corres uma parte do programa sempre, por exemplo, ligas-te a uma base de dados (pode excel ou access ou sql ou qualquer coisa), para te ligares a essa base de dados tens que abrir uma ligação que depois tens que fechar, por exemplo: o excel só permite 5 ligações por ODBC em simultâneo, nestes casos para garantir que fechas sempre a ligação, mesmo que crash, metes no finally essa instrução.

Podes ainda usar Trys dentro de Trys dentro de Trys, é útil em certos casos
Ricardo Timóteo
Responder

Voltar para “Discussão Informática”