Buscar

Excel – Macros e Programação em VBA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais