excel – macros e programação em vba 13 de setembro de 2007pág. 1 excel – macros e...

98
UTFPR – Damat 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. 1 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

Upload: internet

Post on 17-Apr-2015

113 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 1

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

Page 2: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 2

UserForms

Apostila - 376

Page 3: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 3

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

Page 4: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 4

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

Page 5: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 5

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

Page 6: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 6

UserForms• Pressione o botão CommandButton1• Você terá a caixa de diálogo mostrada na Figura.

Apostila - 386

Page 7: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 7

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

Page 8: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 8

UserFormsCaixa 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

Page 9: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 9

UserFormsVamos criar um controle do tipo Caixa de Combinação, no qual serão listadas as seções da empresa:AdministraçãoAuditoriaContabilidadeFinançasInformáticaMarketingPesquisa e DesenvolvimentoVendasAlé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

Page 10: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 10

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

Page 11: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 11

UserForms

Apostila - 410

Page 12: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 12

UserForms3. 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

Page 13: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 13

UserForms4. 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

Page 14: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 14

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

Page 15: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 15

UserForms

AdministraçãoAuditoriaContabilidadeFinançasInformáticaMarketingPesquisa e DesenvolvimentoVendas

Apostila - 411

Digite na planilha “Seções”, iniciando na célula H1, as seções:

Page 16: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 16

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ão exibidos os valores das células H1 até H8, da planilha Seções, conforme pode ser conferido na figura a seguir:

Apostila - 411

Page 17: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 17

UserForms

Apostila - 411

Page 18: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 18

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.

Page 19: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 19

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

Page 20: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 20

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

Page 21: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 21

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]

Page 22: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 22

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

Page 23: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 23

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]

Page 24: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 24

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]

Page 25: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 25

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]

Page 26: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 26

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]

Page 27: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 27

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]

Page 28: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 28

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árioselecionar uma linha.

Sintaxe usando código VBA

objeto.TextColumn [= Variante]

Page 29: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 29

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]

Page 30: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 30

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]

Page 31: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 31

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]

Page 32: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 32

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]

Page 33: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 33

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]

Page 34: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 34

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]

Page 35: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 35

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]

Page 36: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e 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. 36

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.

Page 37: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 37

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]

Page 38: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 38

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]

Page 39: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 39

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]

Page 40: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 40

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]

Page 41: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 41

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]

Page 42: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 42

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]

Page 43: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 43

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) pesquisasua lista à medida que o usuário digita.

Sintaxe usando código VBA

objeto.MatchEntry [= fmMatchEntry]

Page 44: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 44

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]

Page 45: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 45

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]

Page 46: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 46

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]

Page 47: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 47

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çãoque exibia uma lista de seções.

Sintaxe usando código VBA

objeto.RowSource [= Seqüência]

Page 48: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 48

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]

Page 49: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 49

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]

Page 50: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 50

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]

Page 51: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 51

UserForms

Apostila - 412

Propriedade TextAlign:Esta propriedade especifica como o texto é alinhado em um controle.

Sintaxe usando código VBA

objeto.TextAlign [= fmTextAlign]

Page 52: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 52

UserForms

Apostila - 412

Propriedade Visible:Esta propriedade especifica se um objeto está visível ou oculto.

Sintaxe usando código VBA

objeto.Visible [= Booleano]

Page 53: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 53

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]

Page 54: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 54

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;

Page 55: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 55

UserForms – Exemplo1

Page 56: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 56

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;

Page 57: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 57

UserForms – Exemplo1Agora 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.

Page 58: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 58

UserForms – Exemplo1Para inserir as figuras nos 4 controles de imagem, siga os passos:1. Selecione o primeiro controle de imagem,

conforme mostra a figura;

Page 59: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 59

UserForms – Exemplo12. 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;

Page 60: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 60

UserForms – Exemplo13. 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;

Page 61: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 61

UserForms – Exemplo14. 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.

Page 62: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 62

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

Page 63: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 63

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;

Page 64: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 64

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

Page 65: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 65

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 IfEndEnd Sub

Page 66: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 66

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.

Page 67: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 67

UserForms – Exemplo1• Digite as linhas de código:

Dim P1, P2, P3 As Integer'Gerar números aleatóriosP1 = Int(4 * Rnd + 1)P2 = Int(4 * Rnd + 1)P3 = Int(4 * Rnd + 1)

Page 68: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 68

UserForms – Exemplo1

'Mostrar a figura no visor 1If P1 = 1 Then Image1.Picture = Figura1.PictureElseIf P1 = 2 Then Image1.Picture = Figura2.PictureElseIf P1 = 3 Then Image1.Picture = Figura3.PictureElseIf P1 = 4 Then Image1.Picture = Figura4.PictureEnd If

Page 69: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 69

UserForms – Exemplo1

'Mostrar a figura no visor 2If P2 = 1 Then Image2.Picture = Figura1.PictureElseIf P2 = 2 Then Image2.Picture = Figura2.PictureElseIf P2 = 3 Then Image2.Picture = Figura3.PictureElseIf P2 = 4 Then Image2.Picture = Figura4.PictureEnd If

Page 70: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 70

UserForms – Exemplo1

'Mostrar a figura no visor 3If P3 = 1 Then Image3.Picture = Figura1.PictureElseIf P3 = 2 Then Image3.Picture = Figura2.PictureElseIf P3 = 3 Then Image3.Picture = Figura3.PictureElseIf P3 = 4 Then Image3.Picture = Figura4.PictureEnd If

Page 71: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 71

UserForms – Exemplo1'Atualização do saldoSaldo = Saldo - 1'Verificar se o jogador ganhouIf 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 IfEnd If

Page 72: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

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. 72

UserForms – Exemplo1

'Calcular e exibir o total acumuladoLabel1.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 IfEnd If

Page 73: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 73

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 73

UserForms – Exemplo2 Vamos construir neste exemplo um formulário para

entrar com dados cadastrais de funcionários. Para tanto, vamos seguir os passos:

1.Abra o Excel;

2.Insira uma nova pasta de trabalho e salve-a como Cadastro de Funcionários.xls;

3.Nomeie a planilha 1 como Cadastro de Funcionários;

4.Digite nesta planilha os títulos e faça a formatação de bordas conforme mostra a Figura;

Page 74: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 74

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 74

UserForms – Exemplo2

Page 75: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 75

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 75

UserForms – Exemplo2

5. Abra o Editor do VBA;

6. Insira um UserForm;

7. Para a propriedade Caption do UserForm, digite Cadastro de Funcionários e para a propriedade Name digite Cadastro;

8. Insira agora 3 Labels, 3 caixas de texto e 4 botões de comando e deixe-os como mostra a Figura;

Page 76: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 76

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 76

UserForms – Exemplo2

Page 77: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 77

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 77

UserForms – Exemplo2

9. Vamos agora escrever o código para o botão Gravar;

10. Dê um duplo clique no botão gravar e digite o código conforme Figura

Page 78: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 78

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 78

UserForms – Exemplo2

'Ativar a primeira planilhaActiveWorkbook.Worksheets("Cadastro de Funcionários").Activate

'Selecionar a célula A3Range("A3").Select'Procurar a primeira célula vaziaDo If Not (IsEmpty(ActiveCell)) Then ActiveCell.Offset(1, 0).Select End IfLoop Until IsEmpty(ActiveCell) = True

Page 79: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 79

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 79

UserForms – Exemplo2

'Carregar os dados digitados na planilhaActiveCell.Value = TextBox1.ValueActiveCell.Offset(0, 1).Value = TextBox2.ValueActiveCell.Offset(0, 2).Value = TextBox3.Value

Page 80: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 80

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 80

UserForms – Exemplo2

'Limpar as caixa de textoTextBox1.Value = EmptyTextBox2.Value = EmptyTextBox3.Value = Empty

'Colocar o foco na primeira caixa de textoTextBox1.SetFocus

Page 81: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 81

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 81

UserForms – Exemplo2

11. Volte ao UserForm;

12. Vamos inserir agora o código para o botão Pesquisar;

13. Dê um duplo clique no botão Pesquisar;

14. Digite o código mostrado na Figura;

Page 82: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 82

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 82

UserForms – Exemplo2

'Verificar se foi digitado o nome de um 'funcionário na primeira caixa de textoIf TextBox1.Text = "" Then MsgBox "Digite o nome de um funcionário"End If

Page 83: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 83

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 83

UserForms – Exemplo2

Localiza informações específicas em um intervalo, e retorna um objeto Range representando a primeira célula onde essas informações se encontram. Retorna Nothing se nenhuma coincidência for encontrada. Não afeta a seleção da célula ativa.

Método Find

expressão.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Sintaxe:

Page 84: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 84

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 84

UserForms – Exemplo2

What  Variant obrigatório. Determina os dados a serem procurados. Pode ser uma seqüência de caracteres ou qualquer tipo de dados do Microsoft Excel.After  Variant opcional. A célula depois da qual você deseja que a pesquisa comece. Corresponde à posição da célula ativa quando uma pesquisa é feita a partir da interface do usuário. Se você não especificar esse argumento, a pesquisa começará após a célula do canto superior esquerdo do intervalo.LookIn  Variant opcional. O tipo de informação.LookAt  Variant opcional. Pode ser uma das seguintes constantes xlLookAt:  xlWhole ou xlPart.

Page 85: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 85

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 85

UserForms – Exemplo2

With Worksheets("Cadastro de Funcionários").Range("A:A") Set c = .Find(TextBox1.Value, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then c.Activate TextBox1.Value = c.Value TextBox2.Value = c.Offset(0, 1).Value TextBox3.Value = c.Offset(0, 2).Value Else MsgBox "Funcionário não encontrado!" End IfEnd With

Page 86: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 86

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 86

UserForms – Exemplo2

15. Volte ao UserForm;

16. Vamos inserir agora o código para o botão Excluir;

17. Dê um duplo clique no botão Excluir;

18. Digite o código mostrado na Figura;

Page 87: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 87

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 87

UserForms – Exemplo2

'Declarar a variável Resp para receber uma respostaDim Resp As Integer

'Fazer a busca do registro digitado pelo usuário With Worksheets("Cadastro de Funcionários").Range("A:A") Set c = .Find(TextBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)

Set c = .Find(TextBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)

Page 88: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 88

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 88

UserForms – Exemplo2

If Not c Is Nothing Then

Resp = MsgBox("Tem certeza que deseja excluir o registro?", vbYesNo, "Confirmação")

Resp = MsgBox("Tem certeza que deseja excluir o registro?", vbYesNo, "Confirmação")

Page 89: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 89

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 89

UserForms – Exemplo2

If Resp = vbYes Then c.Select Selection.EntireRow.Delete TextBox1.Value = "" TextBox2.Value = "" TextBox3.Value = "“ Else MsgBox "O registro não será excluído!" End If Else MsgBox "Funcionário não encontrado!" End IfEnd With

Page 90: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 90

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 90

UserForms – Exemplo2

16. Volte ao UserForm;

17. Vamos inserir agora o código para o botão Fechar;

18. Dê um duplo clique no botão Fechar;

19. Digite o código mostrado na Figura;

Page 91: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 91

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 91

UserForms – Exemplo2

Private Sub CommandButton4_Click() Cadastro.HideEnd Sub

Page 92: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 92

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 92

UserForms – Exemplo2

16. Finalmente, vamos inserir um botão na planilha para ativar o UserForm;

17. Clique na Planilha Cadastro de Funcionários;

18. No Menu Exibir Barra de Ferramentas, ative a barra Caixa de Ferr. De Controle. Você verá a barra de ferramentas mostrada na Figura;

Page 93: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 93

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 93

UserForms – Exemplo2

19. Na Caixa de ferram. De controle, clique sobre botão de comando e então desenhe na planilha um novo botão;

20. Clique com o botão direito do mouse sobre o botão. Você terá uma caixa de listagem como mostra a Figura;

Page 94: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 94

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 94

UserForms – Exemplo2

Page 95: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 95

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 95

UserForms – Exemplo2

21. Escolha a opção Objeto Botão de Comando e então Editar;

22. Digite para o nome do botão, Cadastro;

23. Você terá a aparência para sua planilha como mostra a figura;

Page 96: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 96

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 96

UserForms – Exemplo2

Page 97: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 97

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 97

UserForms – Exemplo2

24. Agora só falta fazer o botão abrir o UserForm. Clique novamente com o botão direito do mouse e escolha a opção Exibir código;

25. Na linha de código, digite o comando como mostrado na Figura;

26. Ainda no Editor do VBA, pressione na barra de ferramentas o botão para execução do código.

27. No UserForm, pressione o botão Fechar. Seu aplicativo está completo. Teste-o;

Page 98: Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 Excel – Macros e Programação em VBA 13 de setembro de 2007Pág. 1 UTFPR – Damat UserForms

UTFPR – Damat

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 98

Excel – Macros e Programação em VBA

13 de setembro de 2007 Pág. 98

UserForms – Exemplo2

Private Sub CommandButton1_Click() Cadastro.ShowEnd Sub