terça-feira, 9 de setembro de 2014

Excel VBA: Interceptando alguns eventos para criar um jogo da velha

Criamos este artigo para mostrar, na prática, um pouco da utilização das macros no Excel, interceptando alguns eventos. Trabalharemos alguns dos eventos muito comuns e úteis no Excel. Veremos o quanto são simples e poderosos quando usados corretamente.

O arquivo do JOGO DA VELHA está pronto, funcionando e livre de qualquer proteção.  CLIQUE AQUI para baixar o arquivo.

A seguir detalharemos os eventos que foram interceptados na criação deste artigo.





Conceito de Evento

Quando falamos em macros VBA, falamos em programação. O VBA trabalha com "programação orientada a objetos".


Com foco neste artigo, precisamos entender algumas características da orientação a objetos. Os objetos possuem: 
  • "Propriedades", que podem ser ilustradas como, por exemplo, suas características físicas (cor, altura, tamanho, conteúdo, ...)
  • "Eventos", que são ações que podem ocorrer com os objetos, por exemplo, um BOTÃO foi CLICADO (evento CLICK), uma CÉLULA foi EDITADA (evento CHANGE), uma PLANILHA recebeu um DUPLO-CLIQUE (evento ONDOUBLECLICK), e por aí vai. 
  • "Métodos", que são sub-rotinas que podem ser executadas quando algum EVENTO ocorrer em algum OBJETO. Por exemplo, se o evento CLICK ocorrer no objeto IMAGEM execute o procedimento RECALCULAR_TUDO.



Neste artigo utilizamos os seguintes eventos:



  • Auto_Open, executado automaticamente quando o arquivo XLSM é aberto
  • Auto_Close, executado automaticamente quando o arquivo XLSM é fechado
  • OnTime, conseguimos programar a execução de algum método com horário definido
  • OnDoubleClick, se ocorrer um duplo-click em alguma planilha, dispararemos métodos

Auto_Open

O evento Auto_Open ocorre automaticamente sempre que o arquivo XLSM é aberto. No nosso caso, desejamos que, ao abrirmos nosso arquivo JOGO DA VELHA o Excel execute os seguintes passos:

  1. SELECIONAR A PLANILHA CHAMADA "CAPA"
  2. Contar 5 segundos e, em seguida, SELECIONAR A PLANILHA "VELHA"

Abaixo temos a nossa Auto_Open:
      Sub Auto_open()
          Sheets("CAPA").Select
          Application.OnTime Now() + TimeValue("00:00:05"), "Programa"
      End Sub


Auto_Close

O evento Auto_Close ocorre automaticamente sempre que o arquivo XLSM é fechado. No nosso caso, desejamos que, ao fecharmos nosso arquivo JOGO DA VELHA o Excel selecione a planilha CAPA antes de fechar.
      Sub Auto_Close()
          Sheets("CAPA").Select
      End Sub

OnTime

Utilizamos o OnTime quando desejamos agendar a data e hora para a execução de algum método. No nosso caso, utilizamos a sintaxe: Application.OnTime Now() + TimeValue("00:00:05"), "Programa" 

Com essa sintaxe, programos a execução do método "Programa" para ocorrer 5 segundos após o momento da abertura do arquivo.

OnDoubleClick

O OnDoubleClick será executado sempre que houver um DUPLO-CLIQUE em qualquer célula da planilha "VELHA".

      Public Sub Programa()
          Sheets("Velha").Select
          Sheets("Velha").OnDoubleClick = "Marcar_Velha"
      End Sub


No mais, baixem o arquivo, estudem o uso dos eventos acima e, qualquer dúvida, estamos à disposição.

Leiam também outros artigos em NOSSO BLOG.


Estamos aqui, à disposição, aceitando sugestões para novos artigos.

Aproveitem e conheçam o site da nossa empresa: www.excelline.net.

Se você quiser saber mais sobre VBA, recomentamos o seguinte livro:


Contem conosco!



Curta a nossa página
Setembro/2014

GILBERTO GOMES
ExcelLine - Office World
Google+  +gilberto gomes




Related Posts Plugin for WordPress, Blogger...

Compartilhe