Descobrindo facilmente os atalhos do Office 2007

Após um período de adaptação sob um determinado software, os atalhos oferecidos pela ferramenta para acelerar o trabalho são imprecindíveis.

Foi pensando nisso que a Microsoft aprimorou o método de identificação de atalhos, tornando-o mais objetivo na nova edição do Office 2007, dispensando praticamente qualquer consulta a documentos externos e manuais.

Isso é feito tornando os atalhos descritos no próprio documento, planilha ou apresentação. Basta pressionar a tecla Alt e todos atalhos possíveis referente à aba ativa estarão inteiramente a sua disposição.

Veja o formato de apresentação das teclas na figura abaixo.

atalhos Excel

Os atalhos trabalham de forma hierárquica. Por exemplo, ao clicar o Alt pela primeira vez, são disponibilizadas as teclas que ativarão o menu principal ou qualquer uma das abas disponíveis. Por exemplo, digita a tecla Alt, logo depois tecla-se H para ativar a aba Home. Logo após isso, todos os atalhos da barra de ferramentas Home estarão disponíveis para acesso, conforme a figura abaixo:

Atalhos Excel

Uma forma muito fácil de se chegar ao objetivo sem precisar apelar ao mouse, o que definitivamente agiliza muito o trabalho.

O único incoveniente, que ainda gera protesto entre os usuários mais antigos é a mudança da interface, que obrigou a muitos a redescobrir o Office.

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Os cuidados em utilizar a instrução GoTo

Sabemos que instrução GoTo do VBA proporciona uma forma de desviar o fluxo execução de uma função para qualquer linha dentro desta.

Apesar de considerar um recurso útil, as boas práticas de programação condenam o uso deste tipo de instrução. É estranho existir a motivação para a não utilização de um recurso, sendo que por algum motivo ele existe, porém, os argumentos para o caso do GoTo são justificáveis.

Vamos assumir que precisássemos construir um algoritmo (entenda algoritmo como uma sequência de passos definidos para executar uma determinada tarefa) para resolver um problema. A sequência correta de passos para construção deste, seguiria uma estrutura sequêncial bem definida, capaz de ser representada por um fluxograma, por exemplo:




O fato de poder ser representada por um fluxograma, significa que não existe ambiguidade em sua estrutura. Todos os passos para execução das tarefas e tomadas de decisão estão bem definidas, detalhadas e cobrem todas as possibilidades dentro de seu contexto.

Dentro do VBA, as instruções de controle de fluxo como If…Then…Else, While…Wend, For…Next e outras, seguem uma estrutura bem definidas, tendo começo, meio e fim bem localizados em suas definições e utilização. Em todas estas, todos os desvios são previstos e controlados pelo programador. Todos os testes são explícitos baseadas nas condições colocadas. Não há ambiguidade em seu funcionamento.

Neste ponto, a própria definição do GoTo nos leva a pensar:

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

A palavra incondicional foi evidenciada propositalmente. Um desvio incondicional de código significa que, sem qualquer critério, condição ou mesmo teste, a instrução GoTo efetua o devio da execução do código para outra linha.

Supondo que a instrução GoTo seja utilizada em uma parte do código em que uma variável estiver com um valor inválido, um valor não esperado ou mesmo não tenha nenhum valor configurado, isso trará problemas para a execução do código, podendo gerar erros. Pior ainda, o código pode até não gerar um erro, mas pode executar suas funções com valores indesejados, levando a resultados desastrosos. Não há teste ou condição que avalie este desvio de execução.

O programador pode em alguns casos fazer as verificações necessárias para evitar algumas inconsitências, porém, a lógica de seu algoritmo será completamente quebrada por conta da não condicionalidade do desvio do GoTo. A situação é mais complicada quando o GoTo devia o fluxo de execução para uma linha anterior a qual ele é invocado.

Um teste simples para verificar o “estrago” que o uso indiscriminado do GoTo é tentar construir um fluxograma simples de sua função com sua sequência de execução.

A única excessão do bom uso do GoTo é para o tratamento de erros utilizando a estrutura On Error GoTo, como pode ser visto neste link.

Recomendações

Como o VBA oferece estruturas de controle de fluxo bem definidas e organizadas, tanto voltadas a lógica simples de teste como também de repetição de coleções (For…Each), é aconselhável sempre utilizar estas estruturas na construção de códigos. Raras serão as excessões em que o uso do GoTo torna-se indispensável. Caso esta situação ocorra, utilize-o com critério, certificando que em nenhuma situação o desvio causado pode afetar o funcionamento de seu algoritmo.

A idéia não é impedir ou condenar o uso do GoTo, até porque, se não fosse útil ele sequer existiria. O principal objetivo deste texto é alertar para os cuidados que devem ser tomados com o uso desta instrução, de forma a manter o controle de seu aplicativo e facilitar, ou até mesmo possibilitar futuras manutenções.

LETRIS 2.0

O pessoal do Ócio anda mesmo caprinhando…

2008_06_04_letris.jpg

O Letris, um dos jogos mais baixados e mais interessantes do Ócio, merecia uma turbinada: o Letris 2.0. Para começar a falar nas mudanças, o dicionário. Além de, a exemplo do Montando Palavras, acrescentarmos os verbos no infinitivo, também retiramos os acentos. Sei que a língua portuguesa sofre um pouco com isso, mas em termos de jogabilidade ganha-se muito.

Se você, ao jogar o primeiro Letris, notou as peripécias que a macro fazia a cada letra, deve ter notado uma significativa diferença. Para a macro checar se existia palavras formadas, as células eram selecionadas por linha e coluna e checadas contra o dicionário. Essa checagem obviamente continua ocorrendo, mas de forma diferente. O comando utilizado anteriormente era o Range e o Select, ou seja, selecionava-se uma célula na macro e depois extraía-se o texto de dentro dela. Por exemplo:

Range(“A3”).Select
Selection.Text

Com uma simples substituição, a macro ficou muito mais rápida e eficiente:

Cells(3,1).Text

Com o comando Cells, pula-se a etapa de selecionar, o que fica mais rápido e o usuário não tem que ficar assistindo várias células serem selecionadas sem entender nada do que está acontecendo. No exemplo, o número 3 corresponde à linha e o 1, à coluna (coluna A).

Além da correção de alguns “bugs”, mudamos também a probabilidade de letras mais ou menos utilizadas caírem. A letra “a”, obviamente, tem que cair bem mais do que a letra “w”, não?

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Auto-Completar somente dias úteis no Excel

O recurso autocompletar o Excel auxiliar bastante quando queremos preencher automaticamente sequências de números, valores e principalmente datas. Porém, uma necessidade muito comum é preencher ou idenficar somente os dias úteis, excluindo sábados e domingos. Para fazer isso usando o autocompletar, faça o seguinte:

  • Na primeira célula (A1, por exemplo) digite a data inicial (03/06/2008);
  • Na célula abaixo (A2) insira a fórmula: =A1+(MOD(A1;7)=6)*2+1;
  • Formate a célula para que a data apareça como deseja;
  • Clique na célula com a fórmula e, segurando o botão esquerdo do mouse sobre seu canto inferior direito, arraste-a até preencher toda a região desejada.

Abraços

Tomás Vásquez
http://www.tomasvasquez.com.br

Tecnologia e Programação