3: Referenciando workbooks na coleção (collection) Workbooks
As coleções Workbooks contém todos os objetos Workbook abertos. Usando a propriedade Workbooks, você pode referenciar-se a quaisquer workbooks 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 C, lista todos os workbooks abertos. Ao utilizar a referência a coleção Workbooks, você pode referenciar todos os workbooks abertos sem "hard-coding", simplesmente o nome do workbook.
Figura C
Listing all the open workbooks is an easy enough task, thanks to the Workbooks collection. However, opening all of the workbooks in a specified folder is a bit harder, as you can see in the following subprocedure:
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 > 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; tenta tirar vantagem de um dos métodos da coleção (colection) — especificamente, o método Open (abrir).
Fechar todos os workbooks abertos é tão fácil como o foi abrí-lo, aplique a SUB abaixo:
Sub CloseAllWB()
'Fecha todos workbooks abertos.
Workbooks.Close
End Sub
Para visualizar mais métodos e propriedades de collection, pressione F2 no VBE e navegue no Object Browser.
A&A - WORK, DON´T PLAY!
http://al-bernardes.sites.uol.com.br/
bernardess@gmail.com