Workbook/Workbooks
Open Werkboeken tellen
Public Function fTelWerkboek() As Integer
Dim wrkBoeken As Workbooks
Set wrkBoeken = Application.Workbooks
fTelWerkboek = wrkBoeken.Count
End Function
Top
Werkboek toevoegen op basis van Template
Public Sub sNieuwWerkboek()
Dim wrkBoeken As Workbooks
Set wrkBoeken = Application.Workbooks
wrkBoeken.Add "MijnVorm1.xltx"
' Templates worden bewaard in speciale map
vb c:\Gebruikers\Jan\Documenten\Custom Office Templates
End Sub
Top
Werkboek- naam en -pad
'Naam actief werkboek
ActiveWorkbook.Name
'Naam en pad actief werkboek
ActiveWorkbook.FullName
ThisWorkbook.FullName
'Pad actief werkboek
ActiveWorkBook.Path
Top
Aantal open Werkboeken
'Naam actief werkboek
ActiveWorkbook.Name
'Naam en pad actief werkboek
ActiveWorkbook.FullName
ThisWorkbook.FullName
'Pad actief werkboek
ActiveWorkBook.Path
Top
Is een Werkboek open?
Public Function fIsWerkboekOpen(strWrkPadNaam As String) As Boolean
Dim wrk As Workbook
On Error Resume Next
Set wrk = Application.Workbooks(strWrkPadNaam)
'indien VBA geen fout geeft is het werkboek open
If Err.Number = 0 Then
fIsWerkboekOpen = True
Else
fIsWerkboekOpen = False
End If
End Function
Top
Code om via VBA werkboek te openen
Public Sub sDialoogOpenWerkboek()
Dim strWrkNaam As String
'de GetOpenFilename methode van het application object opent dialoog kader.
strWrkNaam = Application.GetOpenFilename( _
FileFilter:="Excel Werkboeken,*.xls*", _
Title:="Blader naar te openen werkboek", _
MultiSelect:=False)
If strWrkNaam <> False Then 'betekent dat er een bestand geslecteerd werd
Application.Workbooks.Open Filename:=strWrkNaam
End If
End Sub
Top
Sluit alle open werkboeken
Public Sub sSluitOpenWrk()
Dim wrk As Workbook
For Each wrk In Application.Workbooks
wrk.Close SaveChanges:=True 'bewaar alle wijzigingen
Next wb
End Sub
Top
Names Collectie van het Workbook object
Het workbook object heeft een Names collectie die referen naar de gedefinieƫrde namen in relatie tot de werkboek.
Public Sub sZoekGedifNamenWrk()
Dim wrk As Excel.Workbook
Dim naam As Name
Set wrk = Application.ActiveWorkbook
For Each naam In wrk.Names
Debug.Print naam.Name
Next
End Sub
Top
De Sheets Collectie van het workbook object.
De Sheets property geeft de Sheets collectie van het werkboek, dit is een Worksheet object voor ieder werkblad en een Chart object voor ieder diagram in het werkboek.
'Hier de procedure van de knop cmdGeefInfo, die alle werkbladen
'in het opschrift van een label plaatst.
Private Sub cmdGeefInfo_Click()
Dim wkb As Excel.Workbook
Dim sht As Excel.Worksheet
Dim strInfo As String
Set wkb = ActiveWorkbook
For Each sht In wkb.Sheets
strInfo = strInfo & sht.Name & vbCr & vbLf
Next
Me.lblInfo.Caption = strInfo
End Sub
Top
VBA code uitvoeren bij het openen van een Workbook
Wanneer men automatisch een Macro of VBA code wilt uitvoeren bij het open van een Workbook kan men de Macro aanroepen in het Workbook_Open gebeurtenis . Volgende code plaatst datum en tijd in cel A2 van werkbled sheet4
Private Sub Workbook_Open()
ThisWorkbook.Worksheets("sheet4").Range("a5").Value = Now()
End Sub
Top
VBA code uit een ander Workbook uitvoeren.
Het is handig om algemene code die men veel gebruikt in één specifiek Workbook te bewaren.
In het Workbook waar men van deze code gebruik wil maken is het voldoende om in de VBE omgeving onder
het menu Tools -> Referentie via bladeren een referentie naar het code-werkboek te maken.
hallo