Category Archives: Outlook

Excel VBA – If … Then … Else

O que é?

No VBA, a estrutura If … Then … Else permite que determinadas instruções sejam executadas apenas caso uma condição definida pelo programador seja satisfeita. O bloco If deve ser encerrado com uma instrução End If.

Esta estrutura de controle de fluxo tem a seguinte sintaxe:

If [condição] Then
    [código executado caso a condição seja verdadeira]
Else
    [código executado caso a condição seja falsa]
End If

A palavra-chave Else é opcional e permite que um conjunto alternativo de instruções seja executado caso a condição testada não seja satisfeita. End If encerra o bloco de código.

Note que é possível inserir qualquer número desejado de instruções dentro desta estrutura. As instruções executadas caso a condição seja verdadeira são todas aquelas que estiverem antes do Else (ou do End If, caso o Else seja suprimido). Analogamente, se uma instrução Else for fornecida, todo o código entre ela e o End If será executado.

Exemplo

Neste exemplo, faremos uma implementação da função módulo. Ela deve receber como parâmetro um número real x e devolver um dos seguintes valores:

  • x, se x é positivo;
  • -x, se x é negativo (note que isto corresponde ao valor de x sem o sinal).

Para implementar esta função, usaremos a estrutura If … Then. Observe o código:

Function Absoluto(x As Long) As Long
    If x >= 0 Then
        Absoluto = x
    Else
        Absoluto = -x
    End If
End Function

No código acima, a condição testada pelo If é se o valor de x é positivo (x > 0). Caso esta expressão seja verdadeira, o primeiro bloco de código (Absoluto = x) será executado, e o segundo, ignorado; caso contrário, apenas o segundo bloco (Absoluto = -x) será executado.

Observe a aplicação da função Absoluto:

Screenshot 2016-01-24 17.30.49

Screenshot 2016-01-24 17.31.11

A função se comporta exatamente como a função ABS do Excel.

VBA – Gráficos animados no Excel com VBA

Apesar de ser uma necessidade um tanto excêntrica, vale pelo aprendizado e inovação.

Os gráficos são ferramentas importantíssimas no Microsoft Excel. Os tipos são os mais variados e poder ser customizados a vontade. Só não é muito comum animá-los, como pode ser visto nestes exemplos:

http://www.ozgrid.com/forum/showthread.php?t=29991

http://spreadsheetpage.com/index.php/tip/animated_hypocycloid_charts/

Gráficos animados no Excel com VBA
Gráficos animados no Excel com VBA

O primeiro é um pouco mais simples, mas eficaz. Já o segundo consegue trazer um ar de Power Point. Muito bem bolado, além de ser um excelente exemplo e referência das capacidades de manipulação de gráficos no Excel. Nem preciso dizer que é preciso um bocado de VBA para a façanha.

Bom divertimento!

Tomás

VBA – Emitindo mensagens personalizadas com MsgBox

O que é?

A função MsgBox exibe uma caixa de mensagem ao usuário e aguarda com que o
usuário clique em um de seus botões para que esta seja fechada.

A estrutura de chamada à função MsgBox se faz da seguinte forma:

MsgBox([prompt][, buttons] [, title] [, helpfile, context]) As VbMsgBoxResult

Prompt

Obrigatória. Expressão de seqüência de
caracteres
exibida como mensagem na caixa de
diálogo. O comprimento máximo de prompt é de aproximadamente 1.024
caracteres, dependendo da largura dos caracteres utilizados. Se prompt consistir em mais de uma linha, você poderá separar as linhas utilizando um
caractere de retorno de carro (Chr(13)), um caractere de
alimentação de linha (Chr(10)) ou uma combinação de caracteres
de retorno de carro e alimentação de linha (Chr(13) & Chr(10)) entre cada linha.

Buttons

Opcional. Expressão
numérica
que é a soma de valores que especifica o
número e o tipo de botões a exibir, o estilo de ícone a utilizar, a identidade
do botão padrão e a modalidade da caixa de mensagem. Se omitido, o valor
padrão para buttons é 0.

Title

Opcional. Expressão de seqüência de caracteres exibida
na barra de título da caixa de diálogo. Se você omitir title, o nome do
aplicativo será inserido na barra de título.

Helpfile

Opcional. Expressão de seqüência de caracteres que
identifica o arquivo de Ajuda a ser utilizado para fornecer ajuda
sensível ao contexto relativa à caixa de diálogo. Se helpfile for
fornecido, context também deverá ser fornecido.

Context

Opcional. Expressão numérica que é o número de
contexto da Ajuda atribuído ao tópico da Ajuda apropriado por
seu autor. Se context for fornecido, helpfile também deverá ser
fornecido.

Definições

As definições do argumento buttons são as seguintes:

Constante Valor Descrição
VbOKOnly 0 Exibe somente o botão OK.
VbOKCancel 1 Exibe os botões OK e Cancelar.
VbAbortRetryIgnore 2 Exibe os botões Abortar, Repetir e Ignorar.
VbYesNoCancel 3 Exibe os botões Sim, Não e Cancelar.
VbYesNo 4 Exibe os botões Sim e Não.
VbRetryCancel 5 Exibe os botões Repetir e Cancelar.
vbCritical 16 Exibe o ícone Mensagem crítica.
vbQuestion 32 Exibe o ícone Consulta de aviso.
vbExclamation 48 Exibe o ícone Mensagem de aviso.
vbInformation 64 Exibe o ícone Mensagem de informação.
vbDefaultButton1 0 O primeiro botão é o padrão.
vbDefaultButton2 256 O segundo botão é o padrão.
vbDefaultButton3 512 O terceiro botão é o padrão.
vbDefaultButton4 768 O quarto botão é o padrão.
vbApplicationModal 0 Janela restrita do aplicativo; o usuário deve responder à caixa de
mensagem antes de continuar o trabalho no aplicativo atual.
vbSystemModal 4096 Janela restrita de sistema; todos os aplicativos são suspensos até que o
usuário responda à caixa de mensagem.
vbMsgBoxHelpButton 16384 Adiciona o botão ‘Ajuda’ à caixa de mensagens
VbMsgBoxSetForeground 65536 Especifica a janela da caixa de mensagens como a janela de primeiro
plano
vbMsgBoxRight 524288 O texto é alinhado à direita
vbMsgBoxRtlReading 1048576 Especifica que o texto deve aparecer como leitura da direita para a
esquerda em sistemas hebraico e árabe

O primeiro grupo de valores (0 a 5) descreve o número e o tipo de botões
exibidos na caixa de diálogo; o segundo grupo (16, 32, 48, 64) descreve o
estilo de ícone; o terceiro grupo (0, 256, 512) determina qual botão é o
padrão e o quarto grupo (0, 4.096) determina a modalidade da caixa de
mensagem. Quando estiver somando números para criar um valor final para o
argumento buttons, utilize somente um número de cada grupo.

Observação Essas constantes são especificadas pelo
Visual Basic for Applications. Como resultado, os nomes podem ser utilizados
em qualquer lugar do seu código em vez dos valores reais.

Como o MsgBox é uma Função (Function), é possível capturar o
valor retornado conforme a ação do usuário.

Valores retornados

Constante Valor Descrição
vbOK 1 OK
vbCancel 2 Cancelar
vbAbort 3 Abortar
vbRetry 4 Repetir
vbIgnore 5 Ignorar
vbYes 6 Sim
vbNo 7 Não

Exemplo

Apesar do grande número de opções e parâmetro oferecidos pelo MsgBox,
vamos nos concentrar em sua funcionalidade mais simples neste momento, que é
emitir mensagens ao usuários. Veja este exemplo de código abaixo:

1
2
3
Public Sub TesteMsgBox()
     MsgBox "Seja bem vindo ao Microsoft Excel!"
End Sub

Execute a função e terá o seguinte resultado:

VBA - MsgBox

Na código de exemplo, apenas o primeiro parâmetro é informado, o suficiente
para fazer uso de mensagens simples. Porém é possível personalizar ainda mais
a caixa de mensagem conforme mostra o próximo código de exemplo:

1
2
3
Public Sub TesteMsgBox()
     MsgBox "Seja bem vindo ao Microsoft Excel!", vbInformation, "Testando o MsgBox"
End Sub

Note que mais dois parâmetros foram informados, o parâmetro Button e Title. Execute a função e terá o seguinte resultado:

VBA - MsgBox com parâmetros adicionais

O parâmetro Title permitiu alterar o título da MsgBox, enquanto
o parâmetro Button alterou o contexto da informação. Como foi informado
que o botão a ser mostrado seria do tipo vbInformation, um ícone de
informação foi adicionado ao caixa e mensagem. Outro tipos de Buttons podem
ser utilizadas, que geraram diferentes ícones, conjunto de botões, alterando
inclusive o som que é executado ao mostrar a caixa. Claro que o ideal é sempre
colocar uma mensagem que esteja de acordo com o contexto. Veja a diferença da
aparência se mudar o parâmetro para o seguinte:

1
2
3
Public Sub TesteMsgBox()
     MsgBox "Ocorreu algum erro!", vbCritical, "Testando o MsgBox"
End Sub

O resultado da execução do código será a seguinte:

VBA - MsgBox com ícone personalizado

Note a mudança do ícone e do som emitido pelo aplicativo. A mensagem também
foi alterada para refletir a contexto do ícone utilizado.

Comentários

Como o MsgBox é uma função (Function), sua execução retorna um
valor que é do tipo VbMsgBoxResult. Quando se utiliza alguns tipos
especiais de parâmetros Button, este retorna nos dá uma alternativa de
analisar a decisão do usuário com base no retorno do MsgBox.

Quando helpfile e context são fornecidos, o
usuário pode pressionar F1 (Windows) ou AJUDA (Macintosh) para visualizar o
tópico de Ajuda que corresponde ao context. Alguns
aplicativos host, por exemplo, o Microsoft Excel, também adicionam
automaticamente um botão Ajuda à caixa de diálogo. Se o usuário clicar
em OK ou pressionar , a função InputBox retornará o que estiver
na caixa de texto. Se o usuário clicar em Cancelar, a função retornará
uma seqüência de caracteres de comprimento zero (“”).

Observação Para especificar mais que o primeiro
argumento nomeado, você deve utilizar InputBox em uma expressão. Para
omitir alguns argumentos posicionais, você deve incluir o delimitador de
vírgula correspondente.

Pratique!

Caso não consiga abrir os arquivos, clique nos links com o botão direito do
mouse e escolha “salvar como”.

Baixe a planilha para praticar.

Dicas úteis para o Outlook Express 6


1 – Não permitir anexos que possam conter vírus; Ferramentas > Opções > Segurança

ø Não permitir que sejam salvos nem abertos anexos que possam conter vírus.

clique aqui para ver um exemplo

Com esta opção voce pode desabilitar a visualização de arquivos anexos. Uma vez selecionada o usuário não poderá ver e nem abrir o anexo, somente ler o que estiver escrito no corpo do e-mail e mais nada. Quando voce clica sobre o arquivo anexo o nome arquivo aparecerá desabilitado (na cor cinza) sem a possibilidade de voce saber do que se trata. Mas se voce já sabe que o anexo que te enviaram é seguro e deseja abrir e executar o anexo, voce poderá fazer isto desmarcando a opção de ‘Não Permitir arquivos anexo’.

Obs.: Só tem essa opção no Outlook 6 ! (Necessita atualização do IE, para o 6)

2 – Avisar quando outro aplicativo tentar enviar e-mail. Ferramentas > Opções > Segurança

ø Avisar quando outro aplicativo tentar enviar e-mail como se fosse eu.

clique aqui para ver um exemplo

Esta opção voce especifica se você deseja receber um aviso do Outlook Express quando outro programa tentar enviar uma mensagem para os contatos da lista de contatos ou do catálogo de endereços sem a sua aprovação. Os vírus podem se espalhar através do envio de cópias de mensagens de email contendo vírus para os seus contatos

3 – Visualização do Email no Painel de Visualização.

Mesmo que o email não seja aberto, muitas pessoas têm seus computadores infectados, pois não perceberam que a configuração do Outlook está permitindo que os virus anexados sejam importados, pois ao aparecer na tela a mensagem, o virus já se instalou. Para minimizar, sugiro os seguintes passos:

  • Clicar em “Ferramentas”
  • Clicar em “Opções”
  • Clicar em “Ler”
  • Desmarcar o item “Fazer download automáticamente ao exibir no painel de visualização”

Estas ações podem inibir a proliferação de virus na rede, pois mesmo que seja visualizada a mensagem, a mesma os anexos não são importados, assim, em alguns casos, ao se colocar o mouse sobre a mensagem, o anti-virus já acusa a presença de virus, aí, é X – Excluir, no caso do Norton. Na seqüência, aparecerá a tela para download. Clique em cancelar e exclua a mensagem da sua caixa de entrada. Em outros casos, o virus só é detectado quando você abre a mensagem. Assim, o anti-virus acusa a presença e os passos são os mesmos acima.
Com esta opção desmarcada, você poderá exibir o corpo da mensagem, selecionando o cabeçalho e, em seguida, pressionando a BARRA DE ESPAÇOS.

4 – Configurando o Outlook e o I.E. contra Vírus

O Outlook, um dos programas mais populares de e-mail, tem um terrível recurso que permite que vírus possam ser executados automaticamente. Vários vírus famosos usam essa falha de segurança para atacarem micros, como o I Love You e o Melissa.
A história é a seguinte: quando uma mensagem possui um script em attach (scripts são pequenos programas escritos em linguagens como Visual Basic Script ou Java Script), o Outlook executa o script automaticamente. Em princípio, essa “facilidade” foi criada para automatizar processos, só que programadores “do mal” logo descobriram essa vulnerabilidade e escreveram vírus usando essas linguagens de programação.

Em nossa dica de hoje veremos passo-a-passo o que é preciso fazer para desabilitar esse recurso. Mesmo que você tenha um bom antivírus instalado em sua máquina, recomendamos que você siga os passos abaixo para desabilitar a execução automática de scripts. Entre parênteses, colocamos o nome das opções na versão em inglês do programa, caso seja essa a versão instalada em sua máquina. O nosso passo-a-passo foi baseado na versão 5 do Outlook Express e do Internet Explorer.

  1. Inicie o Outlook
  2. Clique em Ferramentas (Tools) e selecione Opções (Options). Isso abrirá uma nova janela.
  3. Selecione a guia Segurança (Security) dessa janela.
  4. Há dois painéis dentro da janela Segurança. O painel de cima chama-se Zonas de segurança (Security Zones) e possui duas opções: Zona da Internet (Internet Zone) e Zona de sites restritos (Secure Zone).
  5. Selecione “Zona de sites restritos”. Clique em Ok e a configuração necessária no Outlook estará feita. Agora é necessário desabilitar a execução automática de scripts. Essa configuração é feita através do Internet Explorer.
  6. Inicie o Internet Explorer.
  7. Clique no menu Ferramentas (Tools) e selecione Opções da Internet (Internet Options). Será aberta uma nova janela.
  8. Clique na guia Segurança (Security).
  9. Clique no ícone vermelho com sinal de contra-mão chamado Sites restritos (Restricted sites).
  10. Clique no botão Nível personalizado (Custom level). Isso abrirá uma janela com várias opções.
  11. Role a tela para baixo até você encontrar uma chave chamada Scripts (Scripting).
  12. Deverá aparecer várias subchaves abaixo de Scripts (Permitir operações de colagem através de script, Scripts ativos, Scripts de miniaplicativos java, etc). Se isso não ocorrer, basta dar um duplo clique em Scripts.
  13. Na subchave Scripts ativos, você deverá marcar o botão Desativar referente a essa subchave, como mostra a Figura 1.
  14. Clique em ok em todas as janelas abertas e a sua configuração antivírus estará feita.

Adrian
www.umtoquedemotivacao.com