You are on page 1of 33

Como usar o Visual Basic for Applications (VBA) para alterar UserForms no Excel

ID do artigo: 829070 - Exibir os produtos aos quais esse artigo se aplica.


Exibir Aviso de Iseno de Traduo Automtica
Clique aqui para exibir o artigo traduzido e o artigo original em ingls, lado a lado.
Se voc um cliente do Microsoft para Pequenas Empresas, encontre recursos de
soluo de problemas e de aprendizagem no site Suporte para Pequenas Empresas.
Expandir tudo | Recolher tudo
Nesta pgina
Sumrio
INTRODUO
Mais Informaes
Noes bsicas do UserForm
Como exibir um UserForm
Como ocultar temporariamente um UserForm
Como remover um UserForm da memria
Como usar eventos UserForm
Como capturar eventos de UserForm
Como impedir que um UserForm que est sendo fechada, usando o boto Fechar
Cdigo do VBA
Como usar o modo de design para controles de edio
Como fazer referncia a controles em um UserForm
Controles de rtulo
Como usar uma instruo WITH para formatar um controle Label
Controles TextBox
Como usar um controle TextBox para validar uma senha
Controles CommandButton
Controles de caixa de listagem
Como obter o item atualmente selecionado no controle ListBox
Como obter os itens selecionados em um controle de caixa de listagem selecionar
vrios
Como usar a propriedade OrigemDaLinha para preencher um controle ListBox com
clulas em uma planilha
Como preencher um controle ListBox com valores em uma matriz
Como usar um intervalo horizontal de clulas em uma planilha para preencher um
controle ListBox
Como retornar vrios valores de um controle ListBox associado a vrias colunas de
dados
Como remover todos os itens de um controle de caixa de listagem que esteja vinculado
a uma planilha
Como remover todos os itens de um controle de caixa de listagem no est vinculado a
uma planilha
Controles de caixa de combinao
Como adicionar um novo item lista se o controle ComboBox no est vinculado a
uma planilha
Como adicionar um novo item lista se o controle ComboBox acoplado a uma
planilha
Como exibir a lista de um controle ComboBox quando aparece o UserForm
Como exibir a lista de um controle de caixa de combinao quando voc faz uma
seleo em um outro controle ComboBox
Controle de quadro
Como efetuar um loop em todos os controles em um controle Frame
Controle OptionButton
Como determinar o controle OptionButton selecionado quando os controles
OptionButton esto em um controle Frame
Como determinar o controle OptionButton selecionada
Controle CheckBox
Como verificar o valor de um controle CheckBox
Controle ToggleButton
Como obter o valor de um controle ToggleButton
Como criar um grupo de controles ToggleButton mutuamente exclusivos
Controle TabStrip
Como controlar programaticamente a um controle TabStrip
Controle multiPage
Como controlar programaticamente a um controle MultiPage
Como criar uma interface de assistente utilizando um controle MultiPage
Controle ScrollBar
Como alterar um controle de rtulo que baseado no valor de um controle de barra de
rolagem
Controle SpinButton
Como adicionar um controlo de SpinButton aumenta ou diminui a data em que
armazenado em um controle TextBox
Controle RefEdit
Como preencher um intervalo de clulas com base no intervalo que voc selecionar
usando o controle RefEdit
Controle de imagem
Como carregar uma imagem em um controle de imagem
Informaes adicionais
O Pesquisador de objeto
Propriedades
Submeter comentrios
Sumrio
Este artigo descreve como alterar UserForms via programao no Microsoft Excel.
Ele inclui exemplos e Microsoft Visual Basic for Applications macros (VBA) que
mostram como aproveitar aproveitar os recursos de UserForms e como usar os controles
do ActiveX esto disponveis para os UserForms.

Uma introduo sobre os princpios bsicos de UserForms descreve como exibir


formulrios de usurio, ocultar temporariamente os UserForms e descartar os
UserForms. Tambm so mostrados como usar os eventos mais comuns que so
associado com UserForms o Inicializar evento, o Clique em evento e o Finalizar
evento. Um ou mais dos seguintes exemplos demonstram como Use cada um dos
seguintes controles ActiveX em um UserForm:
Rtulo controle
Caixa de texto controle
CommandButton controle
Caixa de listagem controle
Caixa de combinao controle
Quadro controle
OptionButton controle
Caixa de seleo controle
ToggleButton controle
TabStrip controle
MultiPage controle
Barra de rolagem controle
SpinButton controle
RefEdit controle
Imagem controle
Voltar para o incio | Submeter comentrios
INTRODUO
Este artigo descreve como usar o VBA para fazer alteraes em UserForms no Excel.
Voltar para o incio | Submeter comentrios
Mais Informaes
A Microsoft fornece exemplos de programao apenas para ilustrao, sem garantia
expressa ou implcita. Isso inclui, mas no est limitado a, garantias implcitas de
comercializao ou adequao a um propsito especfico. Este artigo presume que voc
esteja familiarizado com a linguagem de programao que est sendo demonstrada e
com as ferramentas que so usadas para criar e depurar procedimentos. Engenheiros de
suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado
procedimento, mas eles no modificaro esses exemplos para fornecer funcionalidades
adicionais ou construir procedimentos para atender s suas necessidades especficas.
Noes bsicas do UserForm
Como exibir um UserForm
A sintaxe usada para exibir um UserForm programaticamente o seguinte:
UserFormName.Mostrar
Para exibir um UserForm chamado UserForm1, utilize o seguinte cdigo:
UserForm1.Show
Voc pode carregar um UserForm na memria sem exibi-lo realmente. Pode levar um
UserForm complexo vrios segundos para aparecer. Porque voc pode pr-carregar um
UserForm na memria, voc pode decidir quando provoca essa sobrecarga. Para
carregar UserForm1 na memria sem exibi-lo, use o seguinte cdigo:
Load UserForm1
Para exibir o formulrio de usurio, voc deve usar o mtodo Show que foi mostrado
anteriormente.
Como ocultar temporariamente um UserForm
Se voc deseja ocultar temporariamente um UserForm, use o mtodo Ocultar .
Talvez voc queira ocultar um UserForm, se seu aplicativo envolve a movimentao
entre os UserForms. Para ocultar um UserForm, utilize o seguinte cdigo:
UserForm1.Hide
Para obter informaes adicionais, clique em no nmero de artigo que se segue para
visualizar o artigo na Microsoft Knowledge Base:
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: Como mover entre UserForms personalizados com botes de comando
Como remover um UserForm da memria
Para remover um UserForm da memria, use a instruo Unload . Para descarregar
um UserForm chamado UserForm1, utilize o cdigo a seguir:
Unload UserForm1
Se voc descarregar um UserForm em um procedimento de evento que est associado
com um UserForm ou que est associado com um controle em um formulrio de usurio
(por exemplo, voc clicar em um controle CommandButton ), voc pode usar o "Me"
palavra-chave em vez do nome da UserForm. Para usar o "Me" palavra-chave para
descarregar um UserForm, use o seguinte cdigo:
Unload Me
Como usar eventos UserForm
Os UserForms suporta muitos eventos predefinidos que voc pode anexar VBA
procedimentos para. Quando o evento ocorre, o procedimento que voc anexou ao
evento executado. Uma nica ao executada por um usurio pode iniciar vrios
eventos. Entre mais freqentemente usados eventos para um UserForm so o evento
Initialize , o evento Click e o evento Terminate .

Observao Um mdulo do Visual Basic que contm um procedimento de evento pode


ser conhecido como um mdulo "UserForm atrs". Um mdulo que contm o evento
procedimentos no estiver visvel na coleo de mdulos da janela do Microsoft Project
Explorer do Visual Editor bsico. Voc deve clicar duas vezes o corpo de um UserForm
para exibir o UserForm Mdulo de cdigo.
Como capturar eventos de UserForm
Para capturar eventos de formulrio de usurio, siga estas etapas:
Crie uma nova pasta de trabalho no Excel.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Clique duas vezes o UserForm Para exibir o Janela de cdigo para o UserForm.
No mdulo, digite o seguinte cdigo:
Private Sub UserForm_Click()

Me.Height = Int(Rnd * 500)


Me.Width = Int(Rnd * 750)

End Sub

Private Sub UserForm_Initialize()

Me.Caption = "Events Events Events!"


Me.BackColor = RGB(10, 25, 100)

End Sub

Private Sub UserForm_Resize()

msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
MsgBox prompt:=msg, Title:="Resize Event"

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

msg = "Now Unloading " & Me.Caption


MsgBox prompt:=msg, Title:="QueryClose Event"
End Sub

Private Sub UserForm_Terminate()

msg = "Now Unloading " & Me.Caption


MsgBox prompt:=msg, Title:="Terminate Event"

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando o UserForm carregada pela primeira vez, a macro usa o evento Initialize para
alterar a propriedade Caption do UserForm para "Eventos de eventos de eventos!" e a
propriedade BackColor como azul escuro.

Quando voc clica em UserForm, voc Inicia o evento Click . O evento Click
redimensiona o formulrio de usurio. Porque voc criou um procedimento para o
evento Resize , receber duas caixas de mensagem depois de clicar na UserForm. O
evento Resize ocorre duas vezes porque o cdigo do evento Click altera a propriedade
de largura e a propriedade Height de um UserForm.

Fechando o UserForm Inicia o evento QueryClose . O evento QueryClose exibe uma


caixa de mensagem que contm a legenda que voc deu o UserForm no cdigo para o
evento Initialize . Voc pode usar o evento QueryClose quando voc deseja executar um
determinado conjunto de aes se a usurio fecha o UserForm.

O evento Terminate , em seguida, gera uma caixa de mensagem informando que a


legenda o UserForm UserForm1. O evento Terminate ocorre depois que o formulrio
de usurio removido da memria e o legenda do UserForm retorna ao seu estado
original.
Como impedir que um UserForm que est sendo fechada, usando o boto Fechar
Quando voc executa um UserForm, um Fechar boto adicionado para o canto
superior direito da janela do UserForm. Se voc quiser impedir que o UserForm seja
fechada, usando o Fechar boto, voc deve intercepte o evento QueryClose .

O evento QueryClose ocorre imediatamente antes do UserForm descarregado da


memria. Use o argumento CloseMode do evento QueryClose para determinar como o
UserForm fechado. O valor de vbFormControlMenu para o argumento CloseMode
indica que o Fecharboto foi clicado. Para manter o formulrio de usurio ativo, defina
o argumento Cancel do evento QueryClose como True. Para usar o evento QueryClose
para impedir que um UserForm que est sendo fechada usando o Fechar boto, siga
estas etapas:
Crie uma nova pasta de trabalho no Excel.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o UserForm Para exibir o Janela de cdigo para o UserForm.
Na janela cdigo, digite o seguinte cdigo:
Private Sub CommandButton1_Click()

Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

IF CloseMode = vbFormControlMenu Then


Cancel = True
Me.Caption = "Click the CommandButton to close Me!"
End If

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
O UserForm no fechado quando voc clicar na Fechar boto. Voc deve clicar na
CommandButton controle para fechar o formulrio de usurio.

Para obter informaes adicionais, clique no nmeros de artigo abaixo para ler os
artigos na Base de dados de Conhecimento da Microsoft:
207714
(http://support.microsoft.com/kb/207714/ )
XL2000: Erros em tempo de execuo usando a coleo de UserForms
211527
(http://support.microsoft.com/kb/211527/ )
XL2000: No possvel arrastar UserForm controle em uma planilha
211868
(http://support.microsoft.com/kb/211868/ )
XL2000: Erro ao executar a macro que insere o controle no UserForm
213582
(http://support.microsoft.com/kb/213582/ )
XL2000: Problemas ao usar a macro para adicionar o controle ao UserForm
213583
(http://support.microsoft.com/kb/213583/ )
XL2000: No possvel mostrar UserForms em outros projetos
213736
(http://support.microsoft.com/kb/213736/ )
XL2000: Como determinar a tecla pressionada junto com o boto do mouse
213744
(http://support.microsoft.com/kb/213744/ )
XL2000: Como ocultar temporariamente um UserForm
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: Como mover entre UserForms personalizados com botes de comando
213749
(http://support.microsoft.com/kb/213749/ )
XL2000: como Para usar um UserForm para inserir dados
213768
(http://support.microsoft.com/kb/213768/ )
XL2000: Como redimensionar dinamicamente um formulrio do usurio
213774
(http://support.microsoft.com/kb/213774/ )
XL2000: Como criar uma tela de inicializao com um UserForm
Cdigo do VBA
O Excel inclui quinze diferentes controles que podem ser usados em UserForms.
Esta seo contm vrios exemplos que usam esses controles por meio de programao.

Observao O cdigo do VBA que est includo neste artigo no contm exemplos que
afetam todas as propriedades e eventos para os controles. Se voc preciso, voc pode
usar a janela Properties para ver uma lista das propriedades que esto disponveis para
um controle. Para ver uma lista de propriedades, o Modo de exibio menu, clique em
Janela Propriedades.
Como usar o modo de design para controles de edio
Quando voc usar o Editor do Visual Basic para criar uma caixa de dilogo, voc
est usando o modo de design. No modo de design, voc pode editar controles e voc
pode alterar as propriedades de um controle em um UserForm na janela Propriedades.
Para exibir a janela de propriedades, sobre oModo de exibio menu, clique em Janela
Propriedades.

Observao Controles no respondem a eventos enquanto estiver no modo de design.


Quando voc executa uma caixa de dilogo para exibi-la de forma que os usurios
vem-la, o programa est no modo de execuo. Alteraes feitas s propriedades de um
controle em execuo modo no so mantidas quando o UserForm descarregado da
memria.

Observao Controles respondem a eventos no modo de execuo.


Como fazer referncia a controles em um UserForm
Como voc referir-se a controles por meio de programao depende do tipo de folha
de mdulo do Visual Basic onde voc executa o cdigo. Se estiver executando o cdigo
de um mdulo geral, a sintaxe a seguinte:
UserFormName.Controlname.Property = Valor
Por exemplo, se voc deseja definir a propriedade Text de um controle TextBox
chamado TextBox1 em um UserForm chamado UserForm1 para o valor do Bob, use o
seguinte cdigo:
UserForm1.TextBox1.Text = "Bob"
Se o cdigo estiver em um procedimento que iniciado por um evento de um controle
ou o UserForm, preciso fazer referncia ao nome do UserForm. Em vez disso, use o
seguinte cdigo:
TextBox1.Text = "Bob"
Quando voc anexar o cdigo para um objeto, o cdigo est anexado a um dos eventos
desse objeto. Em muitos dos exemplos neste artigo, anexar o cdigo ao evento Click do
objeto CommandButton .
Controles de rtulo
Controles de rtulo so usados principalmente para descrever outros controles em
um UserForm. Um controle de rtulo no pode ser editado pelo usurio, enquanto o
UserForm est em execuo. Use a propriedade Caption para definir ou retornar o texto
em um controle Label . Outras propriedades usadas com freqncia para a formatao
de um controle de rtulo incluem a propriedade Font e a propriedade ForeColor .
Como usar uma instruo WITH para formatar um controle Label
Para usar a instruo WITH para alterar as propriedades de um controle Label ,
execute estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle Label para o formulrio de usurio.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Abra a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

With Label1
' Set the text of the label.
.Caption = "This is Label Example 1"
' Automatically size the label control.
.AutoSize = True
.WordWrap = False
' Set the font used by the Label control.
.Font.Name = "Times New Roman"
.Font.Size = 14
.Font.Bold = True
' Set the font color to blue.
.ForeColor = RGB(0, 0, 255)
End With

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Clique no CommandButton.
O texto "Este o exemplo de rtulo 1" exibida no controle de rtulo em negrito Times
New Roman com um tamanho de fonte de 14.
Controles TextBox
Controles TextBox so freqentemente usados para coletar entrada do usurio. A
propriedade de texto contm a entrada feita em um controle TextBox .
Como usar um controle TextBox para validar uma senha
Se voc definir a propriedade PasswordChar de um controle TextBox , ele se torna
um controle de "edio mascarada". Cada caractere que foi digitado na caixa de texto do
controle substitudo visualmente pelo caractere que voc especificar. Para usar um
controle TextBox para validar uma senha, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle TextBox para o formulrio de usurio.
Sobre o Modo de exibio menu, clique emPropriedades Para tornar a janela de
propriedades visveis.
Na propriedade PasswordChar do controle TextBox , digite *.

Observao Voc est alterando o valor como um asterisco.


Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Abra a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

If TextBox1.Text <> "userform" Then


MsgBox "Password is Incorrect. Please reenter."
TextBox1.Text = ""
TextBox1.SetFocus
Else
MsgBox "Welcome!"
Unload Me
End If

End Sub

Sobre o Executar menu, clique em Executar Sub/UserForm.


Digite a senha UserForm no controle TextBox .
Clique no CommandButtoncontrole.
Neste exemplo, a senha "userform". Se voc digitar um senha incorreta, voc recebe
uma caixa de mensagem informando que a senha incorreto, o controle TextBox
desmarcado e, em seguida, voc poder redigitar a senha. Quando Digite a senha
correta, voc recebe uma mensagem de boas-vindas e o UserForm fechado.

Para obter informaes adicionais, clique em no nmero de artigo que se segue para
visualizar o artigo na Microsoft Knowledge Base:
213555
(http://support.microsoft.com/kb/213555/ )
XL2000: Nenhuma propriedade de validao de dados para UserForm TextBoxes
Controles CommandButton
Voc pode usar um controle CommandButton para iniciar um procedimento VBA. O
procedimento do VBA normalmente anexado ao evento Click do controle
CommandButton . Para usar um controle CommandButton que executa um
procedimento quando ocorre o evento Click , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo:
Private Sub CommandButton1_Click()

red = Int(Rnd * 255)


green = Int(Rnd * 255)
blue = Int(Rnd * 255)
CommandButton1.BackColor = RGB(red, green, blue)

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
A cor de fundo a CommandButton1controle alterado toda vez que voc clicar.
Para obter informaes adicionais sobre o CommandButton de controle, clique nos
nmeros abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
213572
(http://support.microsoft.com/kb/213572/ )
XL2000: Quando voc clica em boto de cancelar no pode dispensar UserForm
213743
(http://support.microsoft.com/kb/213743/ )
XL2000: Como definir o boto de comando padro em um UserForm
Controles de caixa de listagem
A finalidade do controle ListBox apresentar ao usurio uma lista de itens a serem
selecionados de. Voc pode armazenar a lista de itens para um controle de caixa de
listagem em uma planilha do Excel. Para preencher um controle ListBox com um
intervalo de clulas em uma planilha, use a propriedade OrigemDaLinha . Quando voc
usa a propriedade MultiSelect , voc pode configurar um controle ListBox para aceitar
vrias selees.
Como obter o item atualmente selecionado no controle ListBox
Use a propriedade Value de um controle ListBox para retornar o item atualmente
selecionado. Para retornar a o item atualmente selecionado em um nico controle de
caixa de listagem selecionar, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a5 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ListBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Clique duas vezes o Caixa de listagem o controle para Exiba a janela de cdigo para o
controle ListBox .
Na janela cdigo, digite o seguinte cdigo para o evento Click ListBox1 :
Private Sub ListBox1_Click()

MsgBox ListBox1.Value

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica em um item na lista, uma caixa de mensagem aparece com o item
atualmente selecionado.
Como obter os itens selecionados em um controle de caixa de listagem selecionar vrios
Para determinar os itens selecionados em um controle de caixa de listagem
selecionar mltiplos, voc deve percorrer todos os itens na lista, e em seguida, consulte
a propriedade Selected . Para retornar os itens atualmente selecionados em um mltiplo
Selecione o controle ListBox , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a5 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ListBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Sobre o Modo de exibio menu, clique emPropriedades Para ver a janela Propriedades.
Digite os valores que so indicados para as seguintes propriedades do controle ListBox :
Property Value
----------- -----------------------
MultiSelect 1 - frmMultiSelectMulti
RowSource Sheet1!A1:A8
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Sub CommandButton1_Click ()

' Loop through the items in the ListBox.


For x = 0 to ListBox1.ListCount - 1

' If the item is selected...


If ListBox1.Selected(x) = True Then

' display the Selected item.


MsgBox ListBox1.List(x)
End If
Next x

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Selecione um ou mais itens na lista.
Clique em CommandButton1.
Depois de clicar em CommandButton1, cada item que selecionado na ListBox controle
aparece em uma caixa de mensagem separada. Depois que todos os selecionados itens
so exibidos em uma caixa de mensagem, o formulrio de usurio automaticamente
fechado.
Como usar a propriedade OrigemDaLinha para preencher um controle ListBox com
clulas em uma planilha
Para usar a propriedade OrigemDaLinha para preencher um controle de caixa de
listagem de um intervalo de clulas em uma planilha, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a5 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ListBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()
ListBox1.RowSource = "=Sheet1!A1:A5"
End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.

ObservaoListBox1 no contm quaisquer valores.


Clique em CommandButton1.
ListBox1 preenchida com os valores nas clulas a1: a5 em Sheet1.
Como preencher um controle ListBox com valores em uma matriz
Este exemplo mostra como preencher um controle ListBox com uma varivel de
matriz. Voc deve atribuir os valores de a matriz para o item de um controle ListBox ao
mesmo tempo. Normalmente, esse processo requer que Voc usa uma estrutura de loop,
como um para...Prxima loop. Para preencher um controle ListBox com uma varivel
de matriz, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Sobre o Inserir menu, clique emMdulo Para inserir uma planilha de mdulo.
Na janela cdigo, digite o seguinte cdigo:
Sub PopulateListBox()

Dim MyArray As Variant


Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

For Ctr = LBound(MyArray) To UBound(MyArray)


UserForm1.ListBox1.AddItem MyArray(Ctr)
Next

UserForm1.Show

End Sub
Sobre o Ferramentas menu, clique emMacros, clique em PopulateListBoxe, em seguida,
clique emExecutar.
O procedimento PopulateListBox cria uma matriz simples e, em seguida, adiciona os
itens a matriz para o controle ListBox usando o mtodo AddItem . Em seguida, o
UserForm aparece.
Como usar um intervalo horizontal de clulas em uma planilha para preencher um
controle ListBox
Se voc definir a propriedade OrigemDaLinha de um controle ListBox para um
intervalo horizontal de clulas, o primeiro valor exibida no controle ListBox .

Para preencher um controle ListBox de um intervalo horizontal de clulas usando o


mtodo AddItem , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: E1 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ListBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Sobre o Inserir menu, clique emMdulo Para inserir uma planilha de mdulo.
Na janela cdigo, digite o seguinte cdigo:
Sub PopulateListWithHorizontalRange()

For Each x In Sheet1.Range("A1:E1")


UserForm1.ListBox1.AddItem x.Value
Next

UserForm1.Show

End Sub
Sobre o Ferramentas menu, clique emMacros, clique
emPopulateListWithHorizontalRangee, em seguida, clique emExecutar.
O macro procedimento faz um loop atravs de clulas a1: E5 em Sheet1, adicionando os
valores em ListBox1 um por vez.

ObservaoListBox1 no est associado a clulas a1: E5 na Sheet1.


Como retornar vrios valores de um controle ListBox associado a vrias colunas de
dados
Voc pode formatar controles de caixa de listagem para exibir mais de uma coluna de
dados. Isso significa que o controle de caixa de listagem exibe mais de um item em cada
linha da lista. Para vrios valores de retorno do item selecionado na lista, siga estas
etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Digite os seguintes dados nas clulas que esto indicadas no Sheet1:
Recolher esta tabelaExpandir esta tabela
A1: ano B1: regio C1: vendas
A2: 1996 B2: norte C2: 140
A3: 1996 B3: Sul C3: 210
A4: 1997 B4: norte C4: 190
A5: 1997 B5: Sul C5: 195
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle Label para o formulrio de usurio.
Adicione um controle ListBox ao UserForm.
Com o boto direito do Caixa de listageme, em seguida, clique emPropriedades.
Digite ou selecione os valores que so indicados para a seguintes propriedades do
controle ListBox conforme listado na tabela a seguir:
Property Value
----------------------------
BoundColumn 1
ColumnCount 3
ColumnHeads True
RowSource Sheet1!A2:A5
Clique duas vezes o Caixa de listagem o controle para Exiba a janela de cdigo para o
controle ListBox .
Na janela cdigo, digite o seguinte cdigo:
Private Sub ListBox1_Change()

Dim SourceData As Range


Dim Val1 As String, Val2 As String, Val3 As String

Set SourceRange = Range(ListBox1.RowSource)

Val1 = ListBox1.Value
Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value
Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value

Label1.Caption = Val1 & " " & Val2 & " " & Val3

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica em uma entrada no controle ListBox , o rtulo alterado para exibir
todos os trs itens em Essa entrada.
Como remover todos os itens de um controle de caixa de listagem que esteja vinculado
a uma planilha
Para remover todos os itens de um controle de caixa de listagem que esteja vinculado
a uma planilha, desmarque o valor que armazenado na propriedade OrigemDaLinha .
Para remover itens de um controle de caixa de listagem que esteja vinculado a uma
planilha, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a5 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ListBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Com o boto direito do Caixa de listagem controle e, em seguida, Clique em
Propriedades.
Na propriedade OrigemDaLinha , digite Sheet1!A1: A5.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
controle CommandButton .
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

ListBox1.RowSource = ""

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.

O controle de caixa de listagemque voc adicionou ao UserForm preenchido com o


valores que voc digitou em Sheet1.
Clique em CommandButton1.
Todos os itens so removidos do ListBox1.
Como remover todos os itens de um controle de caixa de listagem no est vinculado a
uma planilha
No h nenhum comando VBA nico que remove todos os itens de um controle
ListBox , se a lista no estiver vinculada a uma planilha. Remover todas os itens de um
controle de caixa de listagem preenchida com uma matriz do Visual Basic, siga estas
etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ListBox ao UserForm.
Sobre o Inserir menu, clique emMdulo Para inserir uma planilha de mdulo.
Na janela cdigo, digite o seguinte cdigo:
Sub PopulateListBox()

Dim MyArray As Variant


Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

For Ctr = LBound(MyArray) To UBound(MyArray)


UserForm1.ListBox1.AddItem MyArray(Ctr)
Next

UserForm1.Show

End Sub
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
controle CommandButton .
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

For i = 1 To ListBox1.ListCount
ListBox1.RemoveItem 0
Next I

End Sub
Sobre o Ferramentas menu, clique emMacros, clique em PopulateListBoxe, em seguida,
clique emExecutar.

O controle ListBox preenchido e, em seguida, o UserForm aparece.


Clique em CommandButton1.
Todos os itens so removidos do ListBox1.

Para informaes adicionais sobre o controle de caixa de listagem, clique no seguinte


artigo nmeros para visualizar os artigos na Base de dados de Conhecimento da
Microsoft:
161598
(http://support.microsoft.com/kb/161598/ )
OFF: Como adicionar dados a um ComboBox ou ListBox no Excel ou Word
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: A propriedade TextColumn exibe a primeira coluna
211896
(http://support.microsoft.com/kb/211896/ )
XL2000: Como simular a combinao de controle de caixa de listagem-edio para
UserForms
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: Problemas definir cabealhos de coluna no controle ListBox
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: Como remover todos os itens de um ListBox ou ComboBox
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: Como utilizar a propriedade TextColumn
213723
(http://support.microsoft.com/kb/213723/ )
XL2000: Como retornar valores de uma caixa de listagem que exibe vrias colunas
213746
(http://support.microsoft.com/kb/213746/ )
XL2000: como para preencher o controle de caixa de listagem com vrios intervalos
213748
(http://support.microsoft.com/kb/213748/ )
XL2000: como para preencher uma caixa de listagem com base em outra caixa de
listagem
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: Usar o mtodo AddItem provoca um erro ao OrigemDaLinha est ligado a
dados
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: Usando o mtodo RemoveItem com controle ListBox ou ComboBox
213759
(http://support.microsoft.com/kb/213759/ )
XL2000: como para determinar quais itens esto selecionados em uma caixa de listagem
Controles de caixa de combinao
Voc pode usar o controle ComboBox como uma caixa de listagem drop-down, ou
como uma caixa de combinao onde voc pode Selecione um valor em uma lista ou
digite um novo valor. A propriedade Style determina se o controle ComboBox atua
como uma caixa de listagem suspensa ou uma caixa de combinao.

Observao Todos os exemplos na seo anterior para o controle ListBox tambm


podem ser aplicados para o controle ComboBox , exceto para o "como obter os itens
selecionados em um exemplo de controle de caixa de listagem Selecione vrios".
Como adicionar um novo item lista se o controle ComboBox no est vinculado a uma
planilha
Quando voc digita um valor que no ainda esteja na lista do controle ComboBox ,
voc poder adicionar o novo valor lista. Para adicionar o novo valor digitado no
controle ComboBox se o controle ComboBox no est associado a planilha, siga estas
etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ComboBox para o UserForm.
Sobre o Inserir menu, clique emMdulo Para inserir uma planilha de mdulo.
Na janela cdigo, digite o seguinte cdigo:
Sub PopulateComboBox()

Dim MyArray As Variant


Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

For Ctr = LBound(MyArray) To Ubound(MyArray)


UserForm1.ComboBox1.AddItem MyArray(Ctr)
Next

UserForm1.Show

End Sub
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
controle CommandButton .
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

Dim listvar As Variant

listvar = ComboBox1.List

On Error Resume Next


' If the item is not found in the list...
If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then
' add the new value to the list.
ComboBox1.AddItem ComboBox1.Value
End If

End Sub
Sobre o Ferramentas menu, clique emMacros, clique em PopulateListBoxe, em seguida,
clique emExecutar.

O controle ComboBox preenchido e, em seguida, o UserForm aparece.


No controle ComboBox , digite Mangoes (ou qualquer valor que no j estiver na lista).
Clique em CommandButton1.
O novo valor digitado agora aparece no final da lista.
Como adicionar um novo item lista se o controle ComboBox acoplado a uma
planilha
Quando um usurio digita um valor que no ainda esteja na lista do controle
ComboBox , voc poder adicionar o novo valor lista. Para adicionar o novo valor
digitado no controle caixa de combinao lista, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a5 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ComboBox .
Selecionar as clulas a1: a5 em Sheet1.
Sobre o Inserir aponte paraNomee, em seguida, clique em Definir.

NoNomes na pasta de trabalho caixa, digite ListRange , e, em seguida, clique em OK.


Isso cria o nome definido ListRange. Voc pode usar o nome definido ListRange para
vincular a propriedade OrigemDaLinha do controle ComboBox para a planilha.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ComboBox para o UserForm.
No Propriedades para ComboBox1, digite Sheet1!ListRange como oOrigemDaLinha
propriedade.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
controle CommandButton .
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

Dim SourceData As Range


Dim found As Object

Set SourceData = Range("ListRange")


Set found = Nothing
' Try to find the value on the worksheet.
Set found = SourceData.Find(ComboBox1.Value)

' If the item is not found in the list...


If found Is Nothing Then
' redefine ListRange.
SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"
' Add the new item to the end of the list on the worksheet.
SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _
= ComboBox1.Value
' Reset the list displayed in the ComboBox.
ComboBox1.RowSource = Range("listrange").Address(external:=True)
End If

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.

O UserForm aparece em Sheet1.


No controle ComboBox , digite um valor que no ainda esteja na lista.
Clique em CommandButton1.
O novo item digitado no controle ComboBox adicionado lista e a lista que o controle
ComboBox vinculado ao expandida para incluir as clulas a1: a6.
Como exibir a lista de um controle ComboBox quando aparece o UserForm
s vezes, pode ser til exibir a lista de um controle de caixa de combinao quando
um UserForm aparece primeiro. O exemplo a seguir usa o evento Activate do
UserForm. Para exibir a lista de um controle ComboBox , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a5 em Sheet1, digite os valores que voc deseja Use para preencher o
controle ComboBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ComboBox para o UserForm.
No Propriedades para ComboBox1, digite Sheet1!A1: A5 como oOrigemDaLinha
propriedade.
Clique duas vezes o UserForm Para exibir o Janela de cdigo para o UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click de CommandButton :
Private Sub UserForm_Activate()

ComboBox1.DropDown

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
O UserForm aparece em Sheet1 e voc pode ver a lista para ComboBox1.
Como exibir a lista de um controle de caixa de combinao quando voc faz uma
seleo em um outro controle ComboBox
Para exibir a lista de um controle ComboBox automaticamente quando a opo
feita em um outro controle de caixa de combinao , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Nas clulas a1: a10 de Sheet1, digite os valores que voc deseja Use para preencher o
controle ComboBox .
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emMdulo.
Na janela de cdigo para o mdulo, digite o seguinte cdigo:
Sub DropDown_ComboBox()

UserForm1.ComboBox2.DropDown

End Sub
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ComboBox para o UserForm.
No Propriedades para ComboBox1, digite Sheet1!A1: A5 como oOrigemDaLinha
propriedade.
Clique duas vezes o Caixa de combinao controle para abrir a janela de cdigo para o
controle ComboBox .
Na janela de cdigo para o controle ComboBox , digite o seguinte cdigo para o evento
Click de ComboBox :
Private Sub ComboBox1_Click()
Application.OnTime Now, "DropDown_ComboBox"

End Sub
Adicione um segundo controle ComboBox para o UserForm.
No Propriedades para ComboBox2, digite Sheet1!A6:A10 como oOrigemDaLinha
propriedade.
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica em um item na lista ComboBox1 , a lista de ComboBox2 aparece
automaticamente.

Para obter informaes adicionais sobre o controle ComboBox, clique nos nmeros
abaixo para ler o artigos na Base de dados de Conhecimento da Microsoft:
161598
(http://support.microsoft.com/kb/161598/ )
OFF: Como adicionar dados a um ComboBox ou ListBox no Excel ou Word
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: A propriedade TextColumn exibe a primeira coluna
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: Problemas definir cabealhos de coluna no controle ListBox
213717
(http://support.microsoft.com/kb/213717/ )
XL2000: Erro de tempo de execuo usando o mtodo DropDown com um ComboBox
213718
(http://support.microsoft.com/kb/213718/ )
XL2000: Como exibir uma lista de caixa de combinao quando um UserForm,
exibida
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: Como remover todos os itens de um ListBox ou ComboBox
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: Como utilizar a propriedade TextColumn
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: Usar o mtodo AddItem causa um erro quando dados OrigemDaLinha est
vinculado
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: Usando o mtodo RemoveItem com controle ListBox ou ComboBox
Controle de quadro
Use um controle de quadro para agrupar itens relacionados logicamente em um
UserForm. Controles Frame so freqentemente usados para agrupar controles
OptionButton .
Como efetuar um loop em todos os controles em um controle Frame
Para usar um para cada um...Prxima loop para acessar todos os controles em um
controle de quadro , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de quadro para o formulrio de usurio.
Adicione um controle OptionButton para o controle do quadro .

Repita essa etapa para adicionar dois controles OptionButton mais no controle do
quadro .
Clique duas vezes o Quadro controle para abrir o Janela de cdigo para o controle do
quadro .
Na janela cdigo, digite o seguinte cdigo para o evento Click de quadro :
Private Sub Frame1_Click()

Dim Ctrl As Control

For Each Ctrl In Frame1.Controls


Ctrl.Enabled = Not Ctrl.Enabled
Next

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
No UserForm, clique no Quadrocontrole.
Na primeira vez que voc clicar no controle de quadro , todos os controles no quadro de
controle esto disponveis. Se voc clicar na Quadrocontrole novamente, os controles
esto disponveis novamente.
Controle OptionButton
Voc pode usar grupos de controles OptionButton fazer uma seleo entre um grupo
de opes. Voc pode Use qualquer uma das seguintes tcnicas para agrupar
OptionButton controles:
Controle de quadro
Propriedade GroupName
Observao O valor no , o valor Sim e o valor True indicam que um OptionButton
selecionado. O valor desativado , o valor no e o valor False indicam que um
OptionButton no est selecionada.
Como determinar o controle OptionButton selecionado quando os controles
OptionButton esto em um controle Frame
Ao agrupar controles Botesdeopo usando um controle de quadro , voc pode
determinar que selecionado por um loop em todos os controles no controle
OptionButton o controle de quadro e verificando a propriedade Value de cada controle.
Para determinar o controle OptionButton selecionada, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de quadro para o formulrio de usurio.
Adicione um controle OptionButton para o controle do quadro .

Repita essa etapa para adicionar dois controles OptionButton mais no controle do
quadro .
Adicione um controle CommandButton no UserForm fora do controle do quadro .
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

For Each x In Frame1.Controls


If x.Value = True Then
MsgBox x.Caption
End If
Next

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
No UserForm, clique em um controle OptionButton e, em seguida, clique
emCommandButton1.
Ser exibida uma caixa de mensagem que contm a legenda do atualmente controle
OptionButton selecionado.
Como determinar o controle OptionButton selecionada
O objetivo do exemplo a seguir determinar o controle OptionButton selecionada no
Grupo1. Para criar um UserForm tem dois grupos de controles OptionButton , siga estas
etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de quadro para o formulrio de usurio.
Adicione um controle OptionButton no controle do quadro .

Repita essa etapa para adicionar dois controles OptionButton mais no controle do
quadro .
Para cada controle OptionButton , digite Grupo1 na propriedade GroupName .
Repita as etapas 4 e 5 para criar um segundo controle de quadro que contm trs
controles OptionButton .
Para cada controle OptionButton no segundo controle de quadro , digite Grupo2 na
propriedade GroupName .
Adicione um controle CommandButton no UserForm fora os controles de quadro .
Clique duas vezes o CommandButton o controle para Exiba a janela de cdigo para o
UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

Dim x As Control

' Loop through ALL the controls on the UserForm.


For Each x In Me.Controls
' Check to see if "Option" is in the Name of each control.
If InStr(x.Name, "Option") Then
' Check Group name.
If x.GroupName = "Group1" Then
' Check the status of the OptionButton.
If x.Value = True Then
MsgBox x.Caption
Exit For
End If
End If
End If
Next

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
No UserForm, clique em um controle OptionButton no Grupo1 e, em seguida, clique
emCommandButton1.
Aparece uma caixa de mensagem que contm a legenda do controle OptionButton que
est selecionado no momento.

Para obter informaes adicionais sobre Controles OptionButton, clique no nmero


abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
213724
(http://support.microsoft.com/kb/213724/ )
XL2000: Problemas usando a propriedade TripleState para boto de opo
Controle CheckBox
Voc pode usar um controle CheckBox para indicar um valor verdadeiro ou falso.
Um controle de caixa de seleo que aparece com uma marca de verificao indica um
valor de True. Uma caixa de seleo que aparece com nenhuma marca de seleo indica
um valor de False. Se o valor da propriedade TripleState for Verdadeiro, um controle de
caixa de seleo tambm pode ter um valor Null. Um controle de caixa de seleo que
tem um valor Nulo parece no estar disponvel.

Observao O valor no , o valor Sim e o valor True indicam que um controle de caixa
de seleo est selecionado. O valor desativado , o valor no e o valor False indicam
que um controle de caixa de seleo est desmarcado.
Como verificar o valor de um controle CheckBox
Para usar a propriedade Value para retornar o valor atual de um controle de caixa de
seleo , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de caixa de seleo para o UserForm.
Na lista de propriedades para CheckBox1, selecione True como a propriedade
TripleState .
Clique duas vezes o Caixa de seleo o controle para Exiba a janela de cdigo para o
controle de caixa de seleo .
Na janela cdigo, digite o seguinte cdigo para o evento Change de CheckBox1 :
Private Sub CheckBox1_Change()

Select Case CheckBox1.Value


Case True
CheckBox1.Caption = "True"
Case False
CheckBox1.Caption = "False"
Case Else
CheckBox1.Caption = "Null"
End Select

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica no Caixa de seleo controle, o legenda do controle caixa de seleo
se altera para refletir o valor atual.
Controle ToggleButton
Um controle ToggleButton tem a mesma aparncia como um controle
CommandButton at que voc clicar nele. Quando voc clica em um controle
ToggleButton , ele parece ser pressionado ou empurrado para baixo. A propriedade
Value de um controle ToggleButton Falso e Verdadeiro quando o boto selecionado
quando o boto no estiver selecionado. Se o valor da propriedade TripleState for
Verdadeiro, um controle ToggleButton tambm pode ter um valor Null. Um controle
ToggleButton que tem um valor Nulo parece no estar disponvel.

Observao O valor no , o valor Sim e o valor True indicam que um controle


ToggleButton est selecionado. O valor desativado , o valor no e o valor False indicam
que um controle ToggleButton no est selecionado.
Como obter o valor de um controle ToggleButton
Para obter o valor de um controle ToggleButton , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle ToggleButton no UserForm.
Adicione um controle Label para o formulrio de usurio.
Clique duas vezes o ToggleButton o controle para Abra a janela de cdigo para o
controle ToggleButton .
Na janela cdigo, digite o seguinte cdigo para o evento ToggleButton1Click :
Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then


' Set UserForm background to Red.
Me.BackColor = RGB(255, 0, 0)
Else
' Set UserForm background to Blue.
Me.BackColor = RGB(0, 0, 255)
End If

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica no controle ToggleButton , a cor de plano de fundo das alteraes
UserForm.
Como criar um grupo de controles ToggleButton mutuamente exclusivos
Este exemplo usa o evento MouseUp para definir uma varivel e chama o
procedimento ExclusiveToggleButtons . O procedimento ExclusiveToggleButtons
determina o controle ToggleButton que est selecionado e, em seguida, cancela a outras
pessoas. Para criar um grupo de controles ToggleButton mutuamente exclusivos, siga
estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emMdulo.
Na janela de cdigo para o mdulo, digite o seguinte cdigo:
' Variable that holds the name of the ToggleButton that was clicked.
Public clicked As String

Sub ExclusiveToggleButtons()

Dim toggle As Control

' Loop through all the ToggleButtons on Frame1.


For Each toggle In UserForm1.Frame1.Controls

' If Name of ToggleButton matches name of ToggleButton


' that was clicked...
If toggle.Name = clicked Then
'...select the button.
toggle.Value = True
Else
'...otherwise clear the selection of the button.
toggle.Value = False
End If
Next

End Sub
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de quadro para o formulrio de usurio.
Adicione um controle ToggleButton no controle do quadro .

Repita essa etapa para adicionar dois controles ToggleButton mais no controle do
quadro .
Clique duas vezes o Quadro controle para exibir a janela de cdigo para o UserForm.
Na janela de cdigo para o mdulo, digite o cdigo a seguir para o evento ToggleButton
MouseUp :
Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

clicked = ToggleButton1.Name
Application.OnTime Now, "ExclusiveToggleButtons"

End Sub

Private Sub ToggleButton2_MouseUp(ByVal Button As Integer, _


ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

clicked = ToggleButton2.Name
Application.OnTime Now, "ExclusiveToggleButtons"

End Sub

Private Sub ToggleButton3_MouseUp(ByVal Button As Integer, _


ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

clicked = ToggleButton3.Name
Application.OnTime Now, "ExclusiveToggleButtons"

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica em um controle ToggleButton , controle ToggleButton anteriormente
selecionado ser cancelado.
Controle TabStrip
Use um controle TabStrip para exibir diferentes conjuntos de informaes para um
conjunto de controles.
Como controlar programaticamente a um controle TabStrip
Para alterar a propriedade BackColor de um controle de imagem com base na guia
selecionada, siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Editor do Visual Basic.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle TabStrip UserForm.
Adicionar um controle de imagem que abrange a base do controle TabStrip , mas que
no cobre as guias.
No painel Propriedades Image1, digite& H000000FF & na propriedade BackColor .
Clique duas vezes o TabStrip controle para abrir a janela de cdigo para o controle
TabStrip .
Na janela cdigo, digite o seguinte cdigo para o evento Change TabStrip1 :
Private Sub TabStrip1_Change()

Dim i As Integer

i = TabStrip1.SelectedItem.Index
Select Case i
Case 0
' If Tab1 is selected, change the color of Image control to Red.
Image1.BackColor = RGB(255, 0, 0)
Case 1
' If Tab2 is selected, change the color of Image control to Green.
Image1.BackColor = RGB(0, 255, 0)
End Select

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
A cor das alteraes de controle de imagem dependendo da pgina no controle TabStrip
que est ativa.
Para obter informaes adicionais sobre o TabStrip controle, clique no nmero abaixo
para ler o artigo na Base de dados de Conhecimento da Microsoft:
213254
(http://support.microsoft.com/kb/213254/ )
XL2000: Como usar o controle TabStrip em um UserForm
Controle multiPage
Usar um controle MultiPage para trabalhar com uma grande quantidade de
informaes que podem ser classificadas em vrias categorias. Um controle MultiPage
composto por um ou mais pgina objetos que cada um contm um conjunto diferente de
controles. Voc pode Defina a pgina ativa por meio de programao, definindo a
propriedade Value do controle MultiPage .
Como controlar programaticamente a um controle MultiPage
Para adicionar um controle MultiPage e control-la usando uma macro, siga estas
etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle MultiPage UserForm.
Adicione um controle Label para Pgina1 no controle MultiPage .
Adicione um controle TextBox para Pgina1 no controle MultiPage .
No controle MultiPage , clique em Pgina2e, em seguida, repita as etapas 5 e 6 para
adicionar um controle Label e um controle TextBox .
Clique duas vezes o MultiPage controle para abrir a janela de cdigo para o controle
MultiPage .
Na janela cdigo, digite o seguinte cdigo para o evento Change MultiPage1 :
Private Sub MultiPage1_Change()

Select Case MultiPage1.Value


' If activating Page1...
Case 0
Label1.Caption = TextBox2.Text
TextBox1.Text = ""
' If activating Page2...
Case 1
Label2.Caption = TextBox1.Text
TextBox2.Text = ""
End Select

End Sub
Na janela cdigo, digite o seguinte cdigo para o evento Initialize do formulrio de
usurio :
Private Sub UserForm_Initialize()

' Force Page1 to be active when UserForm is displayed.


MultiPage1.Value = 0
Label1.Caption = ""

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.

No controle TextBox na Pgina1, digite Teste. Quando voc Clique no Pgina2 guia,
TextBox2 est desmarcada e a legenda do Label2 muda para a entrada que voc fez em
TextBox1 na Pgina1 ("teste").
Como criar uma interface de assistente utilizando um controle MultiPage
Quando uma tarefa requer vrias etapas incrementais, uma interface de Assistente
pode ser muito eficaz. Voc pode usar o controle MultiPage para criar uma interface de
assistente em vez de usar vrios UserForms. Este exemplo manipula um controle
MultiPage que tem trs pginas. Um procedimento que est associado a Evento
Initialize do UserForm desativa Page2 e Page3 e fora Pgina1 do controle MultiPage
esteja ativo.

Observao Quando voc indexar as pginas de um controle MultiPage usando a


coleo de pginas , a primeira pgina na coleo zero. Isso procedimento tambm
define a legenda dos controles CommandButton e desativa o <> boto.

Observao O procedimento que atribudo ao evento Click de CommandButton1


controla a funcionalidade do <> boto. O procedimento que atribudo ao evento Click
do CommandButton2 controla a funcionalidade do prximo > boto. Para criar uma
interface de assistente utilizando um controle MultiPage , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle MultiPage UserForm.
Com o boto direito do Pgina1 guia e cliqueNova pgina Para adicionar o controle
MultiPage Page3.
Adicione um controle CommandButton no UserForm no est no controle MultiPage .

Repita essa etapa para adicionar um segundo controle CommandButton no UserForm.


Clique duas vezes o UserForm Para abrir o cdigo janela do UserForm.
Na janela cdigo, digite o seguinte cdigo para o evento Initialize do formulrio de
usurio :
Private Sub UserForm_Initialize()

With MultiPage1
' The next 2 lines disable Page2 & Page3.
.Pages(1).Enabled = False
.Pages(2).Enabled = False
' Make Page1 the active page.
.Value = 0
End With

' Set the caption on the CommandButtons.


CommandButton1.Caption = "<Back"
CommandButton1.Enabled = False
CommandButton2.Caption = "Next>"

End Sub
' Procedure for the "<Back" button
Private Sub CommandButton1_Click()
Select Case MultiPage1.Value
Case 1 ' If Page2 is active...
With MultiPage1
.Pages(0).Enabled = True ' Enable Page1.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton1.Enabled = False ' Disable Back button.

Case 2 ' If Page3 is active...


With MultiPage1
.Pages(1).Enabled = True ' Enable Page2.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(2).Enabled = False ' Disable Page3.
CommandButton2.Caption = "Next>"
End With
End Select

End Sub

' Procedure for the "Next>" button


Private Sub CommandButton2_Click()

Select Case MultiPage1.Value


Case 0 ' If Page1 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(1).Enabled = True ' Enable Page2.
.Pages(0).Enabled = False ' Disable Page1.
End With
CommandButton1.Enabled = True ' Enable Back button.

Case 1 ' If Page2 is active...


With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(2).Enabled = True ' Enable Page3.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton2.Caption = "Finish" ' Change Next button to Finish.

Case 2 ' If Page3 is active...


MsgBox "Finished!" ' User is Finished.
Unload Me ' Unload the UserForm.
End Select

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc clica em Prxima >Pgina2 ativado e o <> boto ficar disponvel.
Quando voc clica em Prxima > uma segunda vez, Page3 ativado e a legenda
CommandButton2 alteraes em "Concluir".
Controle ScrollBar
Voc pode usar um controle de barra de rolagem quando voc deseja alterar o valor
exibido pelo outro controle, como um controle Label .
Como alterar um controle de rtulo que baseado no valor de um controle de barra de
rolagem
Para alterar a propriedade Caption de um controle Label para a configurao atual da
propriedade Value de um controle de barra de rolagem , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de barra de rolagem ao UserForm.
Adicione um controle Label para o formulrio de usurio.
Clique duas vezes o Barra de rolagem controle para abrir a janela de cdigo para o
controle de barra de rolagem .
Na janela cdigo, digite o seguinte cdigo para o evento Change ScrollBar1 :
Private Sub ScrollBar1_Change()

Label1.Caption = ScrollBar1.Value

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando voc rola por meio do controle de barra de rolagem , Label1 atualizado com o
valor atual do controle ScrollBar .
Controle SpinButton
Um controle SpinButton , como um controle de barra de rolagem , freqentemente
usado para incrementar ou decrementar a valor de outro controle, como um controle
Label . A propriedade SmallChange determina quanto o valor de um controle
SpinButton muda quando ele for clicado.
Como adicionar um controlo de SpinButton aumenta ou diminui a data em que
armazenado em um controle TextBox
Para adicionar um controle SpinButton que incrementa ou decrementa uma data que
armazenado em um controle TextBox , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle SpinButton UserForm.
Adicione um controle TextBox para o formulrio de usurio.
Clique duas vezes o SpinButton o controle para Abra a janela de cdigo para o controle
SpinButton .
Na janela cdigo, digite o seguinte cdigo para o evento SpinButton1 SpinUp :
Private Sub SpinButton1_SpinUp()

TextBox1.Text = DateValue(TextBox1.Text) + 1

End Sub
Na janela cdigo, digite o seguinte cdigo para o evento SpinButton1 SpinDown :
Private Sub SpinButton1_SpinDown()

TextBox1.Text = DateValue(TextBox1.Text) - 1

End Sub
Na janela cdigo, digite o seguinte cdigo para o evento Initialize do formulrio de
usurio :
Private Sub UserForm_Initialize()

TextBox1.Text = Date

End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.
Quando o formulrio de usurio for exibida, a data atual exibida em TextBox1.
Quando voc clica no controle SpinButton , a data incrementado ou diminudo por um
dia.

Neste exemplo, se voc alterar a propriedade SmallChangeSpinButton1, voc no afeta


o nmero de dias que a entrada em TextBox1 alterada, quando voc clica
SpinButton1. O nmero de dias determinado somente pelo procedimento que voc
anexado ao evento SpinUp e o evento SpinDown de SpinButton1.

Para obter informaes adicionais sobre SpinButton controle, clique no nmero abaixo
para ler o artigo na Base de dados de Conhecimento da Microsoft:
213224
(http://support.microsoft.com/kb/213224/ )
XL2000: exemplo de Visual Basic para usar um boto de rotao com uma data
Controle RefEdit
O controle RefEdit simula o comportamento das caixas de referncia so
incorporadas no Excel. Voc pode usar a propriedade Value para obter o endereo da
clula atual que so armazenados em um controle RefEdit .
Como preencher um intervalo de clulas com base no intervalo que voc selecionar
usando o controle RefEdit
Para usar o controle RefEdit para preencher as clulas, execute estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle RefEdit UserForm.
Adicione um controle CommandButton para UserForm.
Clique duas vezes o CommandButton o controle para Abra a janela de cdigo para o
controle CommandButton .
Na janela cdigo, digite o seguinte cdigo para o evento Click CommandButton1 :
Private Sub CommandButton1_Click()

Dim MyRange As String


MyRange = RefEdit1.Value
Range(MyRange).Value = "test"
Unload Me
End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.

O UserFormappears.
Clique no boto no controle RefEdit .

Observe que recolhe o UserForm.


Selecione um intervalo de clulas, como a1: a5 e, em seguida, clique no boto no
controle RefEdit para expandir o UserForm.
Clique em CommandButton1.
Fecha o UserForm e contm as clulas que voc selecionou agora a palavra "test".

Para informaes adicionais sobre o controle RefEdit, clique no seguinte artigo nmero
para ler o artigo na Base de dados de Conhecimento da Microsoft:
213776
(http://support.microsoft.com/kb/213776/ )
XL2000: Como usar o controle RefEdit com um UserForm
Controle de imagem
a finalidade do controle de imagem exibir uma imagem em um UserForm. Para
atribuir um imagem em um controle de imagem em tempo de execuo, use a funo
LoadPicture .
Como carregar uma imagem em um controle de imagem
Para inserir um controle de imagem que solicita que voc selecione uma imagem
para carregar quando voc Clique no controle de imagem , siga estas etapas:
Inicie o Excel e, em seguida, abra uma nova pasta de trabalho em branco.
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Inserir menu, clique emUserForm Para inserir um formulrio de usurio em sua
pasta de trabalho.
Adicione um controle de imagem no UserForm.
Clique duas vezes o Imagem controle para abrir o Janela de cdigo para o controle de
imagem .
Na janela cdigo, digite o seguinte cdigo para o evento Click Image1 :
Private Sub Image1_Click()

Dim fname As String

' Display the Open dialog box.


fname = Application.GetOpenFilename(filefilter:= _
"Bitmap Files(*.bmp),*.bmp", Title:="Select Image To Open")

' If you did not click Cancel...


If fname <> "False" Then

' Load the bitmap into the Image control.


Image1.Picture = LoadPicture(fname)

' Refresh the UserForm.


Me.Repaint
End If
End Sub
Sobre o Executar menu, clique em Executar Sub/UserForm.

O UserForm aparece.
Clique no Imagem controle.

Quando Clique no controle de imagem , o Selecione a imagem para abrir caixa de


dilogo aparece, e, em seguida, voc pode selecionar um arquivo de bitmap para inserir
na controle.
Para obter informaes adicionais sobre o controle de imagem, clique em no nmero de
artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
213732
(http://support.microsoft.com/kb/213732/ )
XL2000: Usando a funo LoadPicture com um controle de imagem
Informaes adicionais
O Pesquisador de objeto
Uma lista completa de todas as propriedades e mtodos para uma determinada
comando est disponvel no Pesquisador de objetos. Para localizar essas informaes no
Excel, siga estas etapas:
Sobre o Ferramentas aponte paraMacroe, em seguida, clique em Visual Basic Editor.
Sobre o Modo de exibio menu, clique em Objeto Navegador.
No Texto de pesquisa Digite o nome do o controle que voc deseja e, em seguida, clique
em Pesquisa.
Para obter mais informaes sobre como usar o Pesquisador de objeto no Editor do
Visual Basic, clique em Ajuda do Microsoft Visual Basicsobre o Ajuda menu, digite
Pesquisador de objetosno Assistente do Office ou no Assistente de resposta e, em
seguida, clique Pesquisa Para exibir o tpico.
Para obter informaes adicionais sobre como instalar a Ajuda do Microsoft Excel em
seu computador, clique no seguinte nmero de artigo para ler o artigo na Base de dados
de Conhecimento da Microsoft:
231946
(http://support.microsoft.com/kb/231946/ )
OFF2000: Como adicionar ou remover um nico programa do Office ou componente

You might also like