VBA – A Instrução GoTo

O que é?

É um desvio incondicional para uma linha especificada dentro de uma função VBA.

Estrutura

GoTo [label]

O argumento [label] obrigatório pode ser qualquer rótulo de linha ou número de linha.
rótulo de linha

Utilizado para identificar uma única linha de código. Um rótulo de linha pode ser qualquer combinação de caracteres que inicie com uma letra e termine com dois-pontos (:). Os rótulos de linha não diferenciam maiúsculas de minúsculas e devem iniciar na primeira coluna.
número de linha

Utilizado para identificar uma única linha de código. Um número de linha pode ser qualquer combinação de dígitos que seja exclusiva dentro do módulo no qual é utilizado. Os números de linha devem iniciar na primeira coluna.

Exemplo

Abaixo segue um trecho de código que refleto o uso do Goto:

1
2
3
4
5
6
7
8
9
10
11
12
Public Sub TesteGoto()
    MsgBox "Inicio da função"
    GoTo Rotulo2
Rotulo1:
    MsgBox "Executando Rotulo1"
    GoTo Saida
Rotulo2:
    MsgBox "Executando Rotulo2"
    GoTo Rotulo1
Saida:
    MsgBox "Fim da função"
End Sub

O código acima mostra mensagens em uma sequência definida pela instrução Goto. A instrução não obedece nenhum critério, mesmo sendo executada de dentro uma estrutura condicional (If…Else) ou de repetição (While, For, For Each), fazendo desvio conforme informado. Neste caso, a instrução segue a sequência de execução normalmente até a linha 4, quando é desviada para o Rotulo2 na linha 9, que executa até a linha 11 que desvia a execução para o Rotulo1 na linha 6, que por fim executa até a instrução na linha 8 e quando é desviada para o Saida na linha 12, seguindo a execução até o fim da função.

Veja este outrou exemplo de código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub TesteGoto2()
 
    MsgBox "Inicio da função"
    GoTo Saida
 
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
    MsgBox "Conteúdo da função"
 
Saida:
    MsgBox "Fim da função"
End Sub

Neste caso, por conta do desvio na linha 4 para o rotulo Saida na linha 15, todas as instruções das linhas 5 a 14 nunca serão executadas.

Comentários

GoTo pode desviar somente para linhas de dentro da função em que é colocado.

Observação Excesso de instruções GoTo pode tornar difícil a leitura e depuração do código. Sempre que possível, use instruções de controle estruturado (Do…Loop, For…Next, If…Then…Else, Select Case).

Office – Dicas para acelerar o Microsoft Outlook

Office - Dicas para acelerar o Microsoft Outlook

Um conjunto de regras bacanas para deixar o programa de  email da Microsoft:

A máquina que você usa no escritório não é nenhuma maravilha. O webmail do seu e-mail profissional é tosco, te faz lembrar de 1997. Só que você precisa usar o Outlook o dia todo. Tem jeito de se livrar da lentidão? Então como faz?

Várias configurações do Outlook podem drenar preciosos fiapos de memória. A seguir, três dicas simples para deixar o cliente de e-mail da Microsoft menos pesado.

*Desatolar a Caixa de entrada*
O Outlook pode iniciar mais rápido se a sua Caixa de Entrada tiver menos mensagens. Clique em Arquivo, depois em Novo e, lá no final da lista de opções, em Arquivo de Dados do Outlook. Depois basta seguir as instruções para dar nome e definir onde os e-mails serão guardados. Dá até para proteger o acesso desse arquivo com senha.

Com o arquivo PST, você mantém mensagens antigas salvas em um documento separado, que não é carregado no início do programa. Esse truque é útil também se você trabalha em uma empresa que oferece pouco espaço de armazenamento para suas mensagens. Armazenar as mensagens localmente

*Desabilitar Add-ons*
No menu Ferramentas, clique em Central de Confiabilidade. A janela mostrará uma série de recursos obscuros presentes no Outlook. Clique na opção Suplementos.
Você verá uma lista com uma série de add-ons que nem sempre são úteis, mas que sempre são carregados.

Para dar cabo deles, clique no botão “Ir” que fica no rodapé da janela. Ele mostrará as categorias de acessórios e os itens habilitados em cada um delas. Daí para frente é só entrar e remover add-ons que não estão sendo usados. Há, por exemplo, um tal de “Serviço Móvel do Outlook” que supostamente manda SMS para celulares.
Nunca usei. Acho que nunca vou usar. Então, desabilitei.

*Apelar para a versão light*
Se você usa o Outlook apenas para receber e enviar mensagens, apele para a “modo de segurança” do programa. Achar esse Outlook Light é fácil. Vá ao menu Iniciar, clique no Executar e, na caixinha que aparece, digite apenas Outlook /safe. Essa função foi desenhada para que o programa seja aberto mesmo quando há algum erro grave de execução. Mas também serve para usar uma versão mais enxuta e com menor gasto de memória.

*Desabilite o Instant Messaging*
Para fazer isto, vá em:

  • Ferramentas->Opções
  • Acione a aba “Outras”
  • desmaque a opção “exibir status online junto ao nome de uma pessoa”.

*Limpe as pastas*
O Outlook 2007 inclui outra opção para reduzir o tamanho dos .pst. Vá em Ferramentas, Limpar Caixa de Correio e clique no botão Exibir Tamanho da Caixa de Correio. Você verá uma tela como essa abaixo.

Microsoft Outlook - Conferindo o tamanho das pastas

Haverá uma lista de pastas, juntamente com o tamanho total de casa pasta. Isso irá lhe dizer de onde você poderá tirar o maior proveito limpando e-mails. Quando identificar as maiores pastas, volte para a tela principal do Outlook e vasculhe-as com prioridade, buscando e deletando e-mails e anexos desnecessários.

Depois de ter usado essas técnicas para apagar anexos e e-mails, é hora de compactar seu arquivo .pst. Normalmente, quando você apaga arquivos, fica um espaço vazio no seu .pst que ainda ocupa bytes preciosos.

Fazer essa compactação elimina esses vazios, diminuindo o tamanho total do arquivo. Para isso, vá em Arquivo, Gerenciamento de Arquivos de Dados e clique duas vezes na entrada Pastas Particulares. Depois clique em Compactar agora.

Agora certifique-se de que seu Outlook possui os patches mais recentes, via Windows Update. Há uma atualização em particular que é importante caso você tenha arquivos .pst grandes: Update para Outlook 2007 (KB933493). O patch foi projetado para acelerar o Outlook quando estiver usando .pst consideráveis.

Fonte: INFO, PC World

VBA – Criando um Splash Screen

Quer criar um Splash Screen para seu aplicativo Excel? Antes de mais nada, Splash Screen é o temo usado para descrever a imagem ou tela inicial apresentada por um programa no momento da sua inicialização, resumindo, sua apresentação. No Excel por exemplo, na versão 2007, o Splash Screen é o seguinte:

VBA - Criando um Splash Screen

Bom, sabemos que podemos e desenvolvemos nossos aplicativos em VBA (pelo menos imagino isso dos leitores deste post) e é interessante em alguns colocar uma apresentação. Na maior parte dos casos, um Splash Screen é o mais indicado. Siga os passo abaixo para criar um Splash Screen no VBA.

Atenção: testei o passo a passo no Excel e no Word e funcionaram bem.

  • Abra o VBA (Alt+F11)
  • Insira um Novo UserForm (Inserir->UserForm)
  • Adicione um controle Label através da Caixa de Ferramentas (Exibir->Caixa de Ferramentas)
  • Configure a propriedade Caption do controle Label e do UserForm para o nome do Aplicativo (por exemplo, “Meu Aplicativo”)
  • Altere o tamanho da fonte do controle Label para ficar em evidência, assim como o tamanho do UserForm
  • Abra a janela de código do UserForm (F7 ou clique com o botão direito e dê um Exibir código)
  • Na parte superior da janela de código, selecione Userform na lista da esquerda e em seguida na lista da direita, selecione Initialize (nesta ordem)
  • Com isto, o evento UserForm_Initialize será criado conforme a figura abaixo:
  • VBA - Criando um Splash Screen
  • Agora, insira um novo módulo (Inserir->Módulo) e adicione nele o seguinte código:
  • Sub FechaForm()
    	Unload UserForm1
    End Sub
  • Volte ao códido o Userform e adicione o seguinte código no evento Initialize criado anteriormente para que fique da seguinte forma:
  • Private Sub UserForm_Initialize()
        Application.OnTime Now + TimeValue("00:00:05"), "FechaForm"
    End Sub
  • Até aqui, está tudo pronto para que, ao abrir o form, ele será fechado após 5 segundos através da macro FechaForm configurada pela função Application.Ontime
  • Experimente abrindo o Userform no VBA e clicando em F5
  • Agora, só falta colocar o Userform para abrir ao iniciar a planilha (neste caso, no Excel)
  • Para isso, no VBA, vá até a janela do Projeto (Exibir->Project Explorer)
  • Nele, selecione o item EstaPasta_de_trabalho e clique duas vezes sobre esta para abrir a janela de código
  • Na parte superior da janela de código, selecione WorkBood na lista da esquerda e em seguida na lista da direita, selecione Open (nesta ordem)
  • Com isto, o vento Workbook_Open será gerado
  • Altere-o para que fique da seguinte forma:
  • Private Sub Workbook_Open()
        UserForm1.Show
    End Sub

Com isso, toda vez que a Pasta de Trabalho (arquivo xls ou xlsm) for aberta com as macros ativadas, o form será aberto e fechado automiticamente 5 segundos depois.

Pronto! Temos nosso Splash Screen!

Abraços

Baboseiras – Como surgiu o Dia da Criança

Sei que este não é um blog sobre este tipo de assunto, mas… todo mundo foi criança um dia certo?

Dia da Criança

Fonte: Interney

O Dia das Crianças no Brasil foi “inventado” por um político. O deputado federal Galdino do Valle Filho teve a idéia de criar um dia em homenagem às crianças na década de 1920.

Na década de 1920, o deputado federal Galdino do Valle Filho teve a idéia de “criar” o dia das crianças. Os deputados aprovaram e o dia 12 de outubro foi oficializado como Dia da Criança pelo presidente Arthur Bernardes, por meio do decreto nº 4867, de 5 de novembro de 1924.

Mas somente em 1960, quando a Fábrica de Brinquedos Estrela fez uma promoção conjunta com a Johnson & Johnson para lançar a “Semana do Bebê Robusto” e aumentar suas vendas, é que a data passou a ser comemorada. A estratégia deu certo, pois desde então o dia das Crianças é comemorado com muitos presentes!

Logo depois, outras empresas decidiram criar a Semana da Criança, para aumentar as vendas. No ano seguinte, os fabricantes de brinquedos decidiram escolher um único dia para a promoção e fizeram ressurgir o antigo decreto.
A partir daí, o dia 12 de outubro se tornou uma data importante para o setor de brinquedos.

Em outros países

Alguns países comemoram o dia das Crianças em datas diferentes do Brasil. Na Índia, por exemplo, a data é comemorada em 15 de novembro. Em Portugal e Moçambique, a comemoração acontece no dia 1º de junho. Em 5 de maio, é a vez das crianças da China e do Japão comemorarem!

Dia Universal da Criança

Muitos países comemoram o dia das Crianças em 20 de novembro, já que a ONU (Organização das Nações Unidas) reconhece esse dia como o dia Universal das Crianças, pois nessa data também é comemorada a aprovação da Declaração dos Direitos das Crianças. Entre outras coisas, esta Declaração estabelece que toda criança deve ter proteção e cuidados especiais antes e depois do nascimento.