Módulo 1a: Introdução ao Visual Basic for Applications (VBA) Aula #3 - Eventos, Gráficos e Interfaces gráficas -
Eventos em VBA - Excel É possível detectar e reagir a eventos ocorridos - Nas folhas (sheets) ou - No ficheiro (workbook) Procedimentos genéricos (não-eventos) são colocados dentro das janelas de código standard (de Modules ou de Forms) Eventos que digam respeito a uma sheet são manuseados na janela de código dessa sheet Eventos que digam respeito ao ficheiro são manuseados na janela de código "ThisWorkbook"
Eventos em VBA - Excel Exemplos de eventos de WorkBook: (colocados em ThisWorkbook") Exemplos de eventos de Sheet: (colocados na Sheet n) Existem ainda eventos gerados pelo relógio: função OnTime: Application.OnTime EarliestTime, Procedure, <LatestTime>, <Schedule> Hora para executar o procedimento Hora de time-out Procedimento a executar True: ligado False: desligado VBA3a: ThisWorkbook; Sheet1; Sheet2; Event_Module
Operações Gráficas com VBA É possível programar a criação de gráficos nas folhas de cálculo do excel. Para criar um gráfico numa folha (Sheet): Vamos usar uma classe de "objectos" chamada "ChartObjects". e uma das suas funções (methods): "Add" com os parâmetros: Left, Top, Width, Height (números em "pixels") e pomos tudo numa variável (object handle) Exemplo: Set MeuGraf = Worksheets("Gráficos").ChartObjects.Add(50, 150, 550, 250) comando "atribuir" nome da variável nome da folha classe de objecto função "adicionar" posição e tamanho
Operações Gráficas com VBA Para formatar o gráfico: MeuGraf.Chart.ChartType = xlxyscatterlines variável do tipo "ChartObject" queremos mexer na "Chart" XlChartType Enumeration Tipo de Gráfico https://msdn.microsoft.com/ MeuGraf.Chart.HasTitle = True ' (habilitar o título) MeuGraf.Chart.ChartTitle.Caption = "Meu Gráfico" ' (introduzir o título)
Operações Gráficas com VBA Para adicionar séries (de dados) num gráfico existente numa folha : MeuGraf.Chart.SeriesCollection.NewSeries variável queremos queremos queremos do tipo mexer na mexer nas adicionar uma "ChartObject" "Chart" "SeriesCollection" "nova série"
Operações Gráficas com VBA Para definir os dados de uma das séries: MeuGraf.Chart.SeriesCollection(1).XValues = [B5:B10] variável queremos queremos queremos gama a usar mexer na mexer nas "Chart" "SeriesCollection" do tipo "ChartObject" definir a gama onde estão os valores de X (series member) ou Variável do tipo "Range" MeuGraf.Chart.SeriesCollection(1).Values = [C5:C10] definir a gama onde estão os valores de Y
Operações Gráficas com VBA Para formatar as séries: MeuGraf.Chart.SeriesCollection(1).Name = "Dados1" ' Para dar o nome que aparece na legenda MeuGraf.Chart.SeriesCollection(1).MarkerStyle = xlmarkerstyletriangle ' Para formatar o "marker" Propriedades das "Series members" XlMarkerStyle Enumeration https://msdn.microsoft.com/ https://msdn.microsoft.com/ Graph_Module em VBA2a
As forms são as janelas de interacção com o utilizador. São compostas por uma parte gráfica e uma parte funcional. Parte gráfica: Define a estrutura da janela. Objectos vêm da "toolbox". listbox
Parte gráfica: Objectos da "toolbox". Objecto "Label" Utilizado para mostrar informação. Utilizador não pode editar. Propriedades mais importantes: Name Nome do Objecto Caption Texto que é mostrado na caixa Visible Controla a visibilidade do objecto TextAlign Alinhamento o texto na caixa
Parte gráfica: Objectos da "toolbox". Objecto "TextBox" Utilizado para interagir com utilizador (entrada e saída de informação alfanumérica). Propriedades mais importantes: Name Nome do Objecto Text Texto que é mostrado ou lido da caixa Visible Controla a visibilidade do objecto TextAlign Alinhamento o texto na caixa
Parte gráfica: Objectos da "toolbox". Objecto "ListBox" Utilizado para o utilizador seleccionar um item. É apresentado em forma de tabela. Propriedades mais importantes: Name Nome do Objecto AddItem (method) Coloca o texto na tabela sintaxe: <Objecto>.additem "<texto>", <posição> Visible Controla a visibilidade do objecto TextAlign Alinhamento o texto na caixa
Parte gráfica: Objectos da "toolbox". Objecto "ComboBox" Utilizado para o utilizador seleccionar um item. É apresentado em forma de lista "DropDown". Propriedades mais importantes: Name Nome do Objecto AddItem (method) Coloca o texto na tabela sintaxe: <Objecto>.additem "<texto>", <posição> Visible Controla a visibilidade do objecto TextAlign Alinhamento o texto na caixa
Parte gráfica: Objectos da "toolbox". Objecto "CheckBox" Utilizado para o utilizador seleccionar o item. Propriedades mais importantes: Name Nome do Objecto Caption texto a apresentar Visible Controla a visibilidade do objecto Alignment Posição do texto relativamente à caixa Value Estado da caixa (true, false)
Parte gráfica: Objectos da "toolbox". Objecto "Frame" Utilizado para agrupar items. Funciona como um painel. Propriedades mais importantes: Name Nome do Objecto Caption texto a apresentar Visible Controla a visibilidade do objecto SpecialEffect Efeitos 3D do bordo
Parte gráfica: Objectos da "toolbox". Objecto "ToggleButton" Utilizado como botão com 2 estados: On e Off. Pode ser programado de duas maneiras diferentes, consoante o estado. Propriedades mais importantes: Name Nome do Objecto Caption texto a apresentar Visible Controla a visibilidade do objecto Enabled Controla o estado "activo"/"inactivo" do botão Value Estado do botão (true, false)
Parte gráfica: Objectos da "toolbox". Objecto "CommandButton" Utilizado como botão de clique. Muito usado para desencadear acções. Propriedades mais importantes: Name Nome do Objecto Caption texto a apresentar Visible Controla a visibilidade do objecto Enabled Controla o estado "activo"/"inactivo" do botão
Parte gráfica: Objectos da "toolbox". Objecto "Userform" - Funcionamento
- Resolução da Ficha 3