Baixe o app para aproveitar ainda mais
Prévia do material em texto
Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 1UTFPR – Damat UserForms • UserForms são formulários personalizados pelo programador para criar uma interface entre a pasta de trabalho do Excel e o usuário da aplicação. • Abra o Editor do VBA; • No menu Inserir, escolha UserForm; • A figura mostra como fica o Editor com um UserForm inserido. Apostila - 376 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 2 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 2UTFPR – Damat UserForms Apostila - 376 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 3 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 3UTFPR – Damat UserForms • Quando selecionamos o formulário, a caixa de ferramentas fica ativa. • Esta, possui todos os objetos necessários para compor o nosso formulário; Apostila - 381 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 4 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 4UTFPR – Damat UserForms • Agora vamos adicionar um botão de comando ao formulário UserForm1 e vamos configurar o evento Ao Clicar neste botão para exibir a famosa mensagem “Hello World!!!” Clique com o botão esquerdo do mouse sobre a opção Botão de Comando e arraste para o formulário, e solte o botão do mouse. Apostila - 381 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 5 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 5UTFPR – Damat UserForms • Dê um duplo clique sobre o botão inserido. Você terá a página de códigos. • Digite a caixa de mensagem indicada a seguir entre os comandos Sub e End Sub: • Pressione o botão Executar Sub/UserForm. Você terá o UserForm no modo execução conforme mostra a Figura: Apostila - 385 Private Sub CommandButton1_Click() MsgBox “Hello World!!!" End Sub Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 6 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 6UTFPR – Damat UserForms Apostila - 385 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 7 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 7UTFPR – Damat UserForms • Pressione o botão CommandButton1 • Você terá a caixa de diálogo mostrada na Figura. Apostila - 386 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 8 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 8UTFPR – Damat UserForms A Janela “Propriedades – UserForm1, mostra todas as propriedades do UserForm. Os outros controles que iremos explorar também terão suas propriedades listadas nesta janela. Altere a propriedade Caption para “EXIBIR MENSAGEM!!!” Apostila - 395 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 9 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 9UTFPR – Damat UserForms Caixa de Combinação: Um controle do tipo Caixa de combinação (conhecido como ComboBox) é utilizado para exibir uma lista de opções. Estes controles são indicados para campos onde existe um conjunto de valores possíveis e limitado. Nestas situações, é muito mais prático para o usuário selecionar um valor em uma pequena lista, do que ter que digitar o valor. Além disso, o fato do usuário selecionar o valor em uma lista, praticamente elimina a possibilidade de erros de digitação. Apostila - 409 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 10 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 10UTFPR – Damat UserForms Vamos criar um controle do tipo Caixa de Combinação, no qual serão listadas as seções da empresa: Administração Auditoria Contabilidade Finanças Informática Marketing Pesquisa e Desenvolvimento Vendas Além do controle do tipo Caixa de combinação, também adicionaremos um controle do tipo rótulo, para identificar o controle Caixa de combinação. Apostila - 409 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 11 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 11UTFPR – Damat UserForms 1. Crie um novo formulário; 2. Adicione um controle do tipo rótulo; 3. Altere a propriedade Name do controle para Lista e a propriedade Caption para Selecione uma Seção; 4. Dimensione o controle de tal maneira que todo o texto da propriedade Caption possa ser exibido; 5. Altere a fonte do rótulo para negrito, a cor da fonte para vermelho e a cor de fundo do rótulo para amarelo; 6. Seu formulário deverá estar conforme indicado na Figura a seguir: Apostila - 410 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 12 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 12UTFPR – Damat UserForms Apostila - 410 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 13 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 13UTFPR – Damat UserForms 3. Agora vamos adicionar e configurar um controle do tipo Caixa de Combinação. Na Caixa de ferramentas, clique no botão ( ). Clique no formulário, à direita do rótulo. Será criado um controle do tipo Caixa de combinação, no tamanho padrão. Você pode redimensionar o controle para o tamanho desejado. Seu formulário deve estar semelhante ao indicado na Figura a seguir: Apostila - 410 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 14 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 14UTFPR – Damat UserForms 4. Agora vamos definir os itens que serão exibidos no controle do tipo Caixa de combinação. 5. Clique no controle Caixa de combinação para selecioná-lo. Se a janela de propriedades não estiver sendo exibida, pressione a tecla F4 para exibir a janela de propriedades. 6. Altere a propriedade Name para ListaDeSeções. 7. A lista de valores de um controle do tipo Caixa de Combinação é informado através da propriedade RowSource. Nesta propriedade você deve informar uma faixa de células na planilha, onde estão os valores que devem ser exibidos na Caixa de Combinação. Por exemplo, você pode informar o seguinte valor para a propriedade RowSource: Apostila - 411 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 15 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 15UTFPR – Damat UserForms Seções!H1:H8 Neste exemplo, estou informando que serão utilizados os valores da faixa H1 até H8, da planilha Seções, da pasta de trabalho atual. Ou seja, a nossa caixa de combinação terá oito linhas, sendo que o valor da primeira linha é obtido a partir da célula H1 da planilha Seções, o valor da segunda linha é obtido a partir da célula H2 da planilha Seções e assim por diante. Crie a planilha Seções e digite os dados que você deseja exibir no controle Caixa de Combinação. Apostila - 411 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 16 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 16UTFPR – Damat UserForms Administração Auditoria Contabilidade Finanças Informática Marketing Pesquisa e Desenvolvimento Vendas Apostila - 411 Digite na planilha “Seções”, iniciando na célula H1, as seções: Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 17 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 17UTFPR – Damat UserForms 6. Agora já estamos em condições de testar o nosso controle. Clique em qualquer espaço do formulário para selecioná-lo e pressione a tecla F5 para executá-lo. 7. O formulário será carregado. Abra a lista do controle Caixa de combinação. Observe que sãoexibidos os valores das células H1 até H8, da planilha Seções, conforme pode ser conferido na figura a seguir: Apostila - 411 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 18 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 18UTFPR – Damat UserForms Apostila - 411 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 19 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 19UTFPR – Damat UserForms Propriedades do controle Caixa de Combinação. Apostila - 412 Importante: Muitas das propriedades que serão descritas, se aplicam também para outros tipos de controles. Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 20 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 20UTFPR – Damat UserForms Apostila - 412 Propriedade AutoSize: Esta propriedade determina se o controle é automaticamente redimensionado para exibir todo o seu conteúdo. Esta propriedade pode ser configurada na janela de propriedades, definindo o seu valor em True ou False Sintaxe usando código VBA objeto.AutoSize = True/False Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 21 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 21UTFPR – Damat UserForms Apostila - 413 Propriedade AutoTab: Esta propriedade determina se irá ocorrer a tabulação automática quando um usuário digita o número máximo de caracteres permitido em um TextBox ou na parte da caixa de texto de um ComboBox. Sintaxe usando código VBA objeto.AutoTab = True/False Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 22 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 22UTFPR – Damat UserForms Apostila - 414 Propriedade BackColor : Esta propriedade é utilizada para definir a cor de segundo plano do controle. Você verá a cor de fundo de um objeto, somente se a propriedade BackStyle estiver definida como fmBackStyleOpaque. Sintaxe usando código VBA objeto.BackColor [= Longo] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 23 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 23UTFPR – Damat UserForms Apostila - 415 Propriedade BackStyle: Esta propriedade é utilizada para retornar ou definir o estilo de segundo plano do controle. Sintaxe usando código VBA objeto.BackStyle = fmBackStyle Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 24 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 24UTFPR – Damat UserForms Apostila - 415 Propriedade BorderColor : Esta propriedade é utilizada para especificar a cor da borda de um controle. Para se conseguir inserir uma borda, a propriedade BorderStyle deve estar definida como FmBorderStyleSingle. Sintaxe usando código VBA: objeto.BorderColor [= Longo] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 25 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 25UTFPR – Damat UserForms Apostila - 416 Propriedade BorderStyle: Esta propriedade especifica o tipo de borda utilizado por um controle ou um formulário. Sintaxe usando código VBA objeto.BorderStyle [= fmBorderStyle] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 26 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 26UTFPR – Damat UserForms Apostila - 412 Propriedade BoundColumn: Esta propriedade identifica a fonte dos dados em um controle do tipo Caixa de combinação (ComboBox) ou Caixa de Listagem (ListBox) de várias colunas. Se o controle tiver duas ou mais colunas, a propriedade BoundColumn indica o valor de qual coluna será associado ao controle, depois que uma das opções da lista tiver sido selecionada. Este valor poderá ser resgatado com a propriedade Value. Sintaxe usando código VBA objeto.BoundColumn [= Variante] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 27 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 27UTFPR – Damat UserForms Apostila - 412 Propriedade Value: Esta propriedade especifica o estado ou conteúdo de um dado controle. Sintaxe usando código VBA objeto.Value [= Variante] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 28 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 28UTFPR – Damat UserForms Apostila - 412 Propriedade ColumnCount : Esta propriedade é utilizada para especificar o número de colunas a exibir em uma caixa de listagem ou caixa de combinação. Sintaxe usando código VBA objeto.ColumnCount [= Longo] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 29 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 29UTFPR – Damat UserForms Apostila - 412 Propriedade TextColumn: Esta propriedade identifica a coluna em um controle Caixa de Combinação (ComboBox) ou Caixa de Listagem (ListBox), para armazenar na propriedade Text quando o usuário selecionar uma linha. Sintaxe usando código VBA objeto.TextColumn [= Variante] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 30 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 30UTFPR – Damat UserForms Apostila - 412 Propriedade Text : Esta propriedade é utilizada para retornar ou para definir o texto em um controle do tipo Caixa de Texto (TextBox). Sintaxe usando código VBA objeto.Text [= Seqüência] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 31 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 31UTFPR – Damat UserForms Apostila - 412 Propriedade ColumnWidths: Esta propriedade é utilizada para especificar a largura de cada coluna de uma caixa de combinação ou caixa de listagem de várias colunas. Por exemplo, você pode definir a largura para três colunas como: 0;3;0. Neste caso, somente a segunda coluna será exibida. Sintaxe usando código VBA: objeto.ColumnWidths [= Seqüência] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 32 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 32UTFPR – Damat UserForms Apostila - 412 Propriedade ColumnHeads: Este controle é utilizado para exibir uma única linha de cabeçalhos de coluna para caixas de listagem, caixas de combinação e objetos que aceitam cabeçalhos de coluna. Sintaxe usando código VBA objeto.ColumnHeads [= Booleano] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 33 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 33UTFPR – Damat UserForms Apostila - 412 Propriedade ControlTipText : Esta propriedade define o texto que aparece quando o usuário mantém, durante um momento, o ponteiro do mouse sobre um controle sem clicar. Sintaxe usando código VBA objeto.ControlTipText [= Seqüência] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 34 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 34UTFPR – Damat UserForms Apostila - 412 Propriedade DropButtonStyle: Esta propriedade especifica o símbolo exibido no botão suspenso de um controle do tipo Caixa de combinação (ComboBox.),sendo que o símbolo padrão é uma flechinha para baixo. Sintaxe usando código VBA objeto.DropButtonStyle [= fmDropButtonStyle] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 35 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 35UTFPR – Damat UserForms Apostila - 412 Propriedade Enabled: Esta propriedade especifica se um controle pode receber o foco e responder aos eventos gerados pelo usuário. Sintaxe usando código VBA objeto.Enabled [= Booleano] Excel – Macrose Programação em VBA 13 de setembro de 2007 Pág. 36 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 36UTFPR – Damat UserForms Apostila - 412 Propriedade Locked: Esta propriedade é utilizada para especificar se um controle pode ter o seu conteúdo editado. Quando um controle está bloqueado e ativado, ele ainda pode iniciar eventos e ainda pode receber o foco, apenas não poderá ter o seu conteúdo alterado. Sintaxe usando código VBA: objeto.Locked [= Booleano] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 37 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 37UTFPR – Damat UserForms Apostila - 412 Propriedade Font: Esta propriedade retorna um objeto do tipo Fonte, o qual define as características do texto utilizado por um controle ou formulário. Utilize as propriedades de fonte para especificar o nome da fonte, definir texto sublinhado ou em negrito ou para ajustar o tamanho do texto. Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 38 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 38UTFPR – Damat UserForms Apostila - 412 Propriedade ForeColor: Esta propriedade especifica a cor de primeiro plano de um objeto. Em uma caixa de texto ou de combinação, esta propriedade altera a cor do texto. Sintaxe usando código VBA objeto.ForeColor [= Longo] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 39 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 39UTFPR – Damat UserForms Apostila - 412 Propriedades Height e Width: Estas propriedades definem a altura (Height) e a largura (Width), em pontos, de um objeto. Sintaxe usando código VBA objeto.Height [= Único] objeto.Width [= Único] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 40 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 40UTFPR – Damat UserForms Apostila - 412 Propriedades Left e Top: Estas duas propriedades definem a distância entre um controle e a borda esquerda ou superior do formulário onde está o controle. Sintaxe usando código VBA objeto.Left [= Único] objeto.Top [= Único] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 41 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 41UTFPR – Damat UserForms Apostila - 412 Propriedade ListRows: Esta propriedade é utilizada para especificar o número máximo de linhas a exibir na lista de um controle do tipo Caixa de Combinação ou Caixa de Listagem. Sintaxe usando código VBA objeto.ListRows [= Longo] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 42 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 42UTFPR – Damat UserForms Apostila - 412 Propriedade ListStyle: Esta propriedade é utilizada para especificar o aspecto visual da lista em um ListBox ou ComboBox. Sintaxe usando código VBA objeto.ListStyle [= fmListStyle] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 43 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 43UTFPR – Damat UserForms Apostila - 412 Propriedade ListWidth: Esta propriedade é utilizada para especificar a largura da lista em um controle do tipo Caixa de Combinação (ComboBox). Se o valor for 0, a lista terá o mesmo tamanho do controle. Sintaxe usando código VBA objeto.ListWidth [= Variante] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 44 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 44UTFPR – Damat UserForms Apostila - 412 Propriedade MatchEntry: Esta propriedade é utilizada para retornar ou para definir um valor indicando como um controle do tipo Caixa de Listagem (ListBox) ou Caixa de Combinação (ComboBox) pesquisa sua lista à medida que o usuário digita. Sintaxe usando código VBA objeto.MatchEntry [= fmMatchEntry] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 45 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 45UTFPR – Damat UserForms Apostila - 412 Propriedade MatchRequired: Especifica se um valor digitado na parte texto de um ComboBox deve corresponder a uma entrada na parte lista existente do controle. O usuário pode digitar valores não correspondentes, mas não pode deixar o controle enquanto não for digitado um valor correspondente. Sintaxe usando código VBA objeto.MatchRequired [= Booleano] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 46 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 46UTFPR – Damat UserForms Apostila - 412 Propriedade MaxLength: Especifica o número máximo de caracteres que um usuário pode digitar em um TextBox ou ComboBox. Sintaxe usando código VBA objeto.MaxLength [= Longo] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 47 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 47UTFPR – Damat UserForms Apostila - 412 Propriedade MousePointer: Esta propriedade é utilizada para especificar o tipo de ponteiro exibido quando o usuário posiciona o mouse sobre um determinado objeto. Sintaxe usando código VBA objeto.MousePointer [= fmMousePointer] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 48 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 48UTFPR – Damat UserForms Apostila - 412 Propriedade Row Source: Esta propriedade é utilizada para especificar a origem que fornece uma lista para um controle do tipo Caixa de Combinação (ComboBox) ou Caixa de Listagem (ListBox.). Já utilizamos esta propriedade em um exemplo deste módulo, no qual criamos uma Caixa de Combinação que exibia uma lista de seções. Sintaxe usando código VBA objeto.RowSource [= Seqüência] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 49 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 49UTFPR – Damat UserForms Apostila - 412 Propriedade SpecialEffect: Esta propriedade é utilizada para especificar o aspecto visual de um objeto. Sintaxe usando código VBA objeto.SpecialEffect [= fmButtonEffect] Para Caixa de seleção, Botão de opção, Botão de ativação, use a sintaxe a seguir: Para outros controles, use a sintaxe a seguir: objeto.SpecialEffect [= fmSpecialEffect] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 50 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 50UTFPR – Damat UserForms Apostila - 412 Propriedade TabIndex: Esta propriedade é utilizada para especificar a posição de um único controle na ordem de tabulação do formulário. Sintaxe usando código VBA objeto.TabIndex [= Inteiro] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 51 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 51UTFPR – Damat UserForms Apostila - 412 Propr iedade TabStop: Esta propriedade define se um controle pode receber o foco quando o usuário tabula até ele. Sintaxe usando código VBA objeto.TabStop [= Booleano] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 52 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 52UTFPR – Damat UserForms Apostila - 412 Propriedade TextAlign: Esta propriedade especifica como o texto é alinhado em um controle. Sintaxe usando código VBA objeto.TextAlign [= fmTextAlign] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 53 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 53UTFPR – Damat UserForms Apostila - 412 Propriedade Visible: Esta propriedade especifica se um objeto está visível ou oculto. Sintaxe usando código VBA objeto.Visible[= Booleano] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 54 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 54UTFPR – Damat UserForms Apostila - 412 Propriedade WordWrap: Esta propriedade indica se o conteúdo de um controle quebra automaticamente a linha no final. Sintaxe usando código VBA objeto.WordWrap [= Booleano] Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 55 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 55UTFPR – Damat UserForms – Exemplo1 • Exemplo 1: Construir um Caça Níquel usando quatro figuras e sorteando três em cada jogada, premiando quando as três figuras forem iguais. • Abra a pasta UserForms.xls; • Abra o editor do VBA; • No menu Inserir escolha UserForm. Sua tela deve estar como mostra a Figura; Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 56 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 56UTFPR – Damat UserForms – Exemplo1 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 57 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 57UTFPR – Damat UserForms – Exemplo1 • Inclua três controles de imagem na parte superior do Form para serem utilizados como o visor do Caça Níquel; • Inclua mais quatro controles de imagem na parte inferior do Form para serem utilizados como mostra da figuras disponíveis no sorteio; • Insira um rótulo; • Aumente o tamanho do UserForm para inserir os controles; • Por último, insira dois botões de comando. Tente deixar seu Form como mostra a Figura; Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 58 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 58UTFPR – Damat UserForms – Exemplo1 Agora configure as propriedades dos elementos de exibição, de acordo com a tabela: Objeto Propriedade Configuração Name CaçaNíquel Caption Caça Níquel Name Jogada Caption Jogada Name Sair Caption Sair UserForm1 CommandButton1 CommandButton2 Para Label1, deixe em branco a propriedade Caption. Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 59 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 59UTFPR – Damat UserForms – Exemplo1 Para inserir as figuras nos 4 controles de imagem, siga os passos: 1. Selecione o primeiro controle de imagem, conforme mostra a figura; Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 60 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 60UTFPR – Damat UserForms – Exemplo1 2. Na janela de Propriedades, mude Name para Figura1. Em seguida, localize a propriedade Picture. Clique em reticências. Você terá a caixa de diálogo Carregar figura como mostra a Figura a seguir; Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 61 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 61UTFPR – Damat UserForms – Exemplo1 3. Na opção Arquivos do tipo, escolha Todos os Arquivos(*.*). Você terá quatro figuras disponíveis. Clique na Figura1 e pressione o botão Abrir; Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 62 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 62UTFPR – Damat UserForms – Exemplo1 4. Você verá no UserForm a primeira figura inserida no controle de imagem (Figura); 5. Execute os mesmos passos para inserir as outras três figuras. Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 63 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 63UTFPR – Damat UserForms – Exemplo1 • Para iniciar a codificação, dê um duplo clique no Form para abrir a janela de código. Inclua a declaração da variável Saldo na seção Geral. Dim Saldo As Currency Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 64 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 64UTFPR – Damat UserForms – Exemplo1 • Volte ao Form e selecione-o. Dê agora um duplo clique no Form. Escolha o evento Activate, como mostra a Figura; • Você terá o procedimento, como mostra a figura, inserido; Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 65 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 65UTFPR – Damat UserForms – Exemplo1 • Digite as seguintes linhas de código para o procedimento Activate do UserForm; • A instrução Randomize avisa ao VBA para alternar os números produzidos pelo gerador de números aleatórios. Sem essa instrução, haveria uma repetição dos números gerados toda vez que o programa fosse executado; Private Sub UserForm_Activate() Randomize Saldo = InputBox("Quanto você deseja apostar (em R$)?") End Sub Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 66 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 66UTFPR – Damat UserForms – Exemplo1 • Em seguida, vamos escrever o código para o botão Sair. Volte ao Form e dê um duplo clique sobre o botão Sair para acessar seu código; Private Sub Sair_Click() If Saldo > 0 Then MsgBox "Você tem " & Saldo & " para receber!!!" Else MsgBox "Hoje você não está com sorte. Tente outro dia!!!" End If End End Sub Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 67 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 67UTFPR – Damat UserForms – Exemplo1 • O próximo passo é escrever a rotina do botão Jogada. Dê um duplo clique sobre o botão para acessar seu código. Você terá o esqueleto do procedimento. Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 68 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 68UTFPR – Damat UserForms – Exemplo1 • Digite as linhas de código: Dim P1, P2, P3 As Integer 'Gerar números aleatórios P1 = Int(4 * Rnd + 1) P2 = Int(4 * Rnd + 1) P3 = Int(4 * Rnd + 1) Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 69 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 69UTFPR – Damat UserForms – Exemplo1 'Mostrar a figura no visor 1 If P1 = 1 Then Image1.Picture = Figura1.Picture ElseIf P1 = 2 Then Image1.Picture = Figura2.Picture ElseIf P1 = 3 Then Image1.Picture = Figura3.Picture ElseIf P1 = 4 Then Image1.Picture = Figura4.Picture End If Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 70 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 70UTFPR – Damat UserForms – Exemplo1 'Mostrar a figura no visor 2 If P2 = 1 Then Image2.Picture = Figura1.Picture ElseIf P2 = 2 Then Image2.Picture = Figura2.Picture ElseIf P2 = 3 Then Image2.Picture = Figura3.Picture ElseIf P2 = 4 Then Image2.Picture = Figura4.Picture End If Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 71 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 71UTFPR – Damat UserForms – Exemplo1 'Mostrar a figura no visor 3 If P3 = 1 Then Image3.Picture = Figura1.Picture ElseIf P3 = 2 Then Image3.Picture = Figura2.Picture ElseIf P3 = 3 Then Image3.Picture = Figura3.Picture ElseIf P3 = 4 Then Image3.Picture = Figura4.Picture End If Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 72 Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 72UTFPR – Damat UserForms – Exemplo1'Atualização do saldo Saldo = Saldo - 1 'Verificar se o jogador ganhou If P1 = P2 And P2 = P3 Then If P1 = 1 Then Saldo = Saldo + 25 MsgBox "Você tirou a sorte grande!!!" Else Saldo = Saldo + 10 MsgBox "Você venceu!!!" End If End If Excel – Macros e Programação em VBA 13 de setembro de 2007 Pág. 73 Excel – Macros e Programação em VBA13 de setembro de 2007 Pág. 73UTFPR – Damat UserForms – Exemplo1 'Calcular e exibir o total acumulado Label1.Caption = Format(Saldo, "R$0.00") If Saldo <= 0 Then MsgBox "Você está sem crédito!" a = InputBox("Quer mais crédito? Em caso afirmativo, digite Sim.") If a = "Sim" Or a = "sim" Then Saldo = InputBox("Quanto você deseja comprar?") Label1.Caption = Format(Saldo, "R$0.00") End If End If
Compartilhar