none
me expliquem o significado das pontuações usadas no vba, e a ordem de comando tipo OBJETO.PROPRIEDADE e tau, vme ajudem valeu. RRS feed

  • 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
    quarta-feira, 16 de setembro de 2015 22:05

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


    quinta-feira, 17 de setembro de 2015 13:16
    Moderador
    • 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/

    quinta-feira, 17 de setembro de 2015 11:25

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/

    quinta-feira, 17 de setembro de 2015 11:25
  • 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


    quinta-feira, 17 de setembro de 2015 13:16
    Moderador
  • valeu Felipe Costa Gualberto, ajudou bastante brigadão ;) foi bem explicativo valeu msm.

    quinta-feira, 17 de setembro de 2015 18:34