Usuário com melhor resposta
me expliquem o significado das pontuações usadas no vba, e a ordem de comando tipo OBJETO.PROPRIEDADE e tau, vme ajudem valeu.

Pergunta
-
qual o significado do ( ; ), ( , ), ( : ), ( . ) e qual é a ordem certa para se escrever uma linha de código? tipo é OBJETO.PROPRIEDADE = COMANDO? tipo pq escrever "me.commandbutton1", pq a necessidade de por o "me" antes do objeto? me deem essa moral ae valeu, brigadão
Respostas
-
O ; não tem papel na sintaxe do VBA, apenas em fórmulas na planilha.
A , é um separador de parâmetros ou argumentos, Exemplo: x = Somar(10, 20).
O : é usado para escrever mais de uma instrução numa linha física.
A ideia do . é de acessar uma ramificação de uma entidade. Ela pode se manifestar de várias formas.
1 - Acessar um procedimento de um módulo de um determinado projeto:
Sub Exemplo() 'As instruções abaixo são equivalentes: Debug.Print VBAProject.Módulo1.Somar(10, 20) Debug.Print Somar(10, 20) End Sub
A primeira instrução está na forma de PROJETO.MÓDULO.PROCEDIMENTO. A segunda apenas PROCEDIMENTO.
As instruções são equivalentes porque se você não qualificar um procedimento, o VBE assume que você está se referindo ao procedimento do módulo onde o projeto se encontra. O mesmo acontece ocm seu exemplo de Me.CommandButton1. Me representa o objeto da classe onde você está, seja formulário ou módulo de classe. Se você omitir o Me, o VBE assume que você está se referindo a um membro da classe onde você está escrevendo o seu código.
O mesmo vale para Range("A1"), que equivale a ActiveSheet.Range("A1").
2 - Acessar um elemento de uma coleção.
Debug.Print Worksheets("Plan1").Name
Tenha em mente que Worksheets é diferente de Worksheet. Worksheets é um objeto que também é uma coleção. Worksheet, que é um objeto, é apenas um elemento da coleção. Uma coleção é um objeto que armazena vários elementos de um ou mais tipos de dados.
Acima, a propriedade Name se refere ao objeto Worksheet e não Worksheets, pois o VBA avalia a expressão Worksheets("Plan1") e expõe as propriedades de um elemento de Worksheets
3 - Acessar a propriedade de um objeto:
Range("A1").Value = "Felipe"
No entanto, se a propriedade a ser acessada for também um objeto, pode-se fazer um caminho maior pelo modelo de objeto:
ThisWorkbook.Worksheets("Plan1").Range("A1").Value = "Felipe"
A hierarquia está na forma Workbook.Worksheet.Range.PropriedadeEscalar, ou Objeto.Objeto.Objeto.ValorEscalar.
Você não pode seguir a hierarquia depois de Value porque Value não é um objeto, mas sim um tipo de dados simples.
4 - Acessar um membro de um tipo definido:
Type Residência Área As Single Valor As Single End Type Sub Main() Dim Casa As Residência Casa.Área = 50 Casa.Valor = 150000 End Sub
5 - Acessar uma constante de enumeração:
Enum Alarme Ativado = 1 Desativado = 2 End Enum Sub Main() Dim MeuValor As Alarme If MeuValor = Ativado Then MsgBox "O alarme está ativado!", vbExclamation End If End Sub
Existem outras situações em que há uso do ponto, mas na maioria das vezes, será por esses motivos.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Editado Felipe Costa GualbertoMVP, Moderator quinta-feira, 17 de setembro de 2015 13:20
- Sugerido como Resposta William John Adam Trindade quinta-feira, 17 de setembro de 2015 20:25
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 15:30
-
- Para definir o valor de uma propriedade
Objeto.propriedade = valor da propriedade
Ex: Range("A1").value = 123 'Define o valor da célula como 123
__
- 'Me', no Access, refere-se ao formulário ativo
Ex: Me.commandbutton1.enabled = false 'Desabilita o botão commandbutton1
__
Sugiro esse guia de sintaxe do VBA, feito pelo nosso colega de fórum, Felipe Gualberto.
http://ambienteoffice.com.br/blog/sintaxe-do-vba/
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 15:30
Todas as Respostas
-
- Para definir o valor de uma propriedade
Objeto.propriedade = valor da propriedade
Ex: Range("A1").value = 123 'Define o valor da célula como 123
__
- 'Me', no Access, refere-se ao formulário ativo
Ex: Me.commandbutton1.enabled = false 'Desabilita o botão commandbutton1
__
Sugiro esse guia de sintaxe do VBA, feito pelo nosso colega de fórum, Felipe Gualberto.
http://ambienteoffice.com.br/blog/sintaxe-do-vba/
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 15:30
-
O ; não tem papel na sintaxe do VBA, apenas em fórmulas na planilha.
A , é um separador de parâmetros ou argumentos, Exemplo: x = Somar(10, 20).
O : é usado para escrever mais de uma instrução numa linha física.
A ideia do . é de acessar uma ramificação de uma entidade. Ela pode se manifestar de várias formas.
1 - Acessar um procedimento de um módulo de um determinado projeto:
Sub Exemplo() 'As instruções abaixo são equivalentes: Debug.Print VBAProject.Módulo1.Somar(10, 20) Debug.Print Somar(10, 20) End Sub
A primeira instrução está na forma de PROJETO.MÓDULO.PROCEDIMENTO. A segunda apenas PROCEDIMENTO.
As instruções são equivalentes porque se você não qualificar um procedimento, o VBE assume que você está se referindo ao procedimento do módulo onde o projeto se encontra. O mesmo acontece ocm seu exemplo de Me.CommandButton1. Me representa o objeto da classe onde você está, seja formulário ou módulo de classe. Se você omitir o Me, o VBE assume que você está se referindo a um membro da classe onde você está escrevendo o seu código.
O mesmo vale para Range("A1"), que equivale a ActiveSheet.Range("A1").
2 - Acessar um elemento de uma coleção.
Debug.Print Worksheets("Plan1").Name
Tenha em mente que Worksheets é diferente de Worksheet. Worksheets é um objeto que também é uma coleção. Worksheet, que é um objeto, é apenas um elemento da coleção. Uma coleção é um objeto que armazena vários elementos de um ou mais tipos de dados.
Acima, a propriedade Name se refere ao objeto Worksheet e não Worksheets, pois o VBA avalia a expressão Worksheets("Plan1") e expõe as propriedades de um elemento de Worksheets
3 - Acessar a propriedade de um objeto:
Range("A1").Value = "Felipe"
No entanto, se a propriedade a ser acessada for também um objeto, pode-se fazer um caminho maior pelo modelo de objeto:
ThisWorkbook.Worksheets("Plan1").Range("A1").Value = "Felipe"
A hierarquia está na forma Workbook.Worksheet.Range.PropriedadeEscalar, ou Objeto.Objeto.Objeto.ValorEscalar.
Você não pode seguir a hierarquia depois de Value porque Value não é um objeto, mas sim um tipo de dados simples.
4 - Acessar um membro de um tipo definido:
Type Residência Área As Single Valor As Single End Type Sub Main() Dim Casa As Residência Casa.Área = 50 Casa.Valor = 150000 End Sub
5 - Acessar uma constante de enumeração:
Enum Alarme Ativado = 1 Desativado = 2 End Enum Sub Main() Dim MeuValor As Alarme If MeuValor = Ativado Then MsgBox "O alarme está ativado!", vbExclamation End If End Sub
Existem outras situações em que há uso do ponto, mas na maioria das vezes, será por esses motivos.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Editado Felipe Costa GualbertoMVP, Moderator quinta-feira, 17 de setembro de 2015 13:20
- Sugerido como Resposta William John Adam Trindade quinta-feira, 17 de setembro de 2015 20:25
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quinta-feira, 5 de novembro de 2015 15:30
-