Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador collection. Mostrar todas as postagens
Mostrando postagens com marcador collection. Mostrar todas as postagens

VBA Tips - Usando Collection para gerenciar Grupos de Objetos e Coleções - Use the Collection Collection to Manage Groups of Objects and Collections



O Collection oferece uma maneira conveniente para se referir a um grupo de objetos e coleções como um único objeto. 

Importante: Os objetos e coleções no Collection não tem que ser do mesmo tipo de dados.

Para adicionar itens a um Collection, use o método Add, que tem o seguinte formato:

Add (Item, Key, Before, After)

Onde:

Item é o objeto ou collection que deseja adicionar à coleção.

Key é um argumento opcional que especifica um nome de chave única para este item.

Before e After são argumentos opcionais que especificam onde deseja adicionar o item na coleção.

O código de exemplo a seguir demonstra como usar a coleção coleções. Para mais informações, consulte o "coleção de objetos" na Ajuda VBA.

' Módulo da Classe (clsTest.cls).

Public FirstName As String
Public LastName As String



' Código do módulo (modTest.bas).

Public Sub TestCollections()

    ' Objetivo: Demonstrar o uso de coleções com o Collection.

    Dim colNames As New Collection
    Dim iItem As Integer
    Dim vItem As Variant

    On Error GoTo TestCollections_Err

    Do
        ' Create an object to add to the collection.
        Dim clsTest_Item As New clsTest

        ' Configura as propriedades da collection.
        Let clsTest_Item.FirstName = InputBox(Prompt:="Primeiro nome?")
        Let clsTest_Item.LastName = InputBox(Prompt:="Último nome?")

        ' Adicionando um objeto ao Collection.
        If clsTest_Item.FirstName <> "" And clsTest_Item.LastName <> "" Then
            colNames.Add _
                Item:= clsTest_Item, _
                Key:= clsTest_Item.FirstName & clsTest_Item.LastName
        Else
            ' Lista o conteúdo do collection.
            For Each vItem In colNames
                MsgBox vItem.FirstName & " " & vItem.LastName
            Next vItem

            Exit Do
        End If

        Set clsTest_Item = Nothing

    Loop

TestCollections_End:
    Exit Sub

TestCollections_Err:
    Select Case Err.Number
        Case 457    ' Duplicate key name.
            MsgBox "Você não pode duplicar o primeiro e o último par de nomes. " & _
                "Tente novamente."
        End Select

    Resume TestCollections_End

End Sub

Tags: VBA, Tips, Collection, Manage, Groups, Object, grupos, objetos, coleção, gerenciar

VBA Excel - 00.10 - Referenciando-se as planilhas - Workbooks



Modos de referenciar-se a um Worbook:



Tags: VBA, Excel, Series, reference, referenciando, workbook, worksheet


VBA Excel - 03.10 - Referenciando planilha - Collection - Referenciando a coleção do Workbook



É sempre bom saber que:

workbooks = Arquivo que contém todas as planilha em diversas pastas.

worksheets = Planilhas individuais, contidas nas abas.


3 - Collection - Referenciando Workbooks na coleção

As coleções de Workbooks contém todos os objetos Workbooks que estão abertos. 

Para instanciá-lo, a seguinte SUB populará um listbox num formulário do usuário com os nomes de todos os workbooks abertos:

Private Sub UserForm_Activate()
  'Popula o listbox com os nomes dos workbooks abertos.

  Dim wb As Workbook
  
  For Each wb In Workbooks
    ListBox1.AddItem wb.Name
  Next wb

 End Sub

O FORM resultante é mostrado na Figura abaixo. perceba a listagem de todos os workbooks abertos. Ao utilizar a referência à coleção Workbooks, poderá referenciá-los sem "hard-coding", simplesmente o nome do workbook.


Para listar todos os workbooks abertos é uma tarefa fácil; agradeça isso a existência da Workbooks collection. Todavia abrir todos os workbooks numa pasta específica é uma tarefa dura, mas você poderá se beneficiar desta SUB:

Sub OpenAllwb()
  'Abre todos os workbooks numa pasta específica.

  Dim i As Integer

  With Application.FileSearch
  
    Let .LookIn = "C:\A&A"
    Let .FileType = msoFileTypeExcelWorkbooks
       ' Se houver workbooks.

      If .Execute &gt; 0 Then
        For i = 1 To .FoundFiles.Count
          Workbooks.Open (.FoundFiles(i))
        Next i
  
      ' Caso não hajam workbooks       Else
        MsgBox "Não existem workbooks para acessar.", vbOKOnly
      End If
  End With
End Sub

Esta tarefa mostra o que pode ser feito com a coleção Workbooks. Neste caso o código não circula através da coleção Workbooks; antes tenta tirar vantagem de um dos métodos da coleção (collection) — especificamente, o método Open (abrir). 

Fechar todos os workbooks abertos é tão fácil como foi abrí-los, aplique a SUB abaixo:

Sub CloseAllWB()
  'Fecha todos workbooks abertos.
  Workbooks.Close
End Sub

Para visualizar mais métodos e propriedades de collection, pressionando F2 no VBE e naveguendo no Object Browser.
diHITT - Notícias