t
Personal Shortcut menu
Private Sub Workbook_Open()
Dim MyMenu As ObjectSet MyMenu = Application.ShortcutMenus(xlWorksheetCell) _
.MenuItems.AddMenu("This is my Custom Menu", 1)With MyMenu.MenuItems
.Add "MyMacro1", "MyMacro1", , 1, , ""
.Add "MyMacro2", "MyMacro2", , 2, , ""
End WithSet MyMenu = Nothing
End Sub
Objects - Columns and Rows
'Count Columns/Rows
Range("$A$1").Columns.Count
Range("$A$1").Rows.Count'Delete Column/Row
Range("$A$1").EntireColumn.Delete
Range("$A$1").EntireRow.Delete'Hide/Show Columns/Rows
Range("$A$1").Columns.Hidden = True
Range("$A$1").Rows.Hidden = True
Range("$A$1").Columns.Hidden = False
Range("$A$1").Rows.Hidden = True'Insert Columns / Rows
Range("$A$1").EntireColumn.Insert
Range("$A$1").EntireRow.Insert'Last Column / Last Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
lRow = Cells(Rows.Count, 1).End(xlUp).Row'Height Rows
Range("$A$1").EntireRow.RowHeight = 30
'Column Width
Range("$A$1").EntireColumn.ColumnWidth = 30
Objects - Shapes
ActiveSheet.Shapes.AddShape msoShapeRectangle, 10, 10, 100, 40'Copy Cell and Paste to Selected Range
ActiveSheet.Shapes("Shape1").Copy
Selection.PasteSpecialActiveSheet.Shapes("Shape1").Delete
Dim shp As ShapeFor Each shp In ActiveSheet.Shapes
Next shpActiveSheet.Shapes("Shape1").Visible = msoFalse
ActiveSheet.Shapes("Shape1").Left = 10
ActiveSheet.Shapes("Shape1").Height = 100
ActiveSheet.Shapes("Shape1").Select
ActiveSheet.Shapes("Shape1").Visible = msoTrue
Overzicht VBA Workbook Events
Microsoft Excel VBA biedt verschillende evenementen die gekoppeld kunnen worden aan een Workbook. Hieronder volgt een lijst van deze evenementen met korte voorbeelden van hoe je ze kunt gebruiken.
1. BeforeClose
Dit evenement wordt geactiveerd voordat een werkmap gesloten wordt.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Werkmap wordt gesloten"
End Sub
2. **BeforePrint**
Dit evenement wordt geactiveerd voordat een werkmap afgedrukt wordt.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox “Werkmap wordt afgedrukt”
End Sub
3. **BeforeSave**
Dit evenement wordt geactiveerd voordat een werkmap opgeslagen wordt.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Werkmap wordt opgeslagen"
End Sub
4. **Deactivate**
Dit evenement wordt geactiveerd wanneer een werkmap gedeactiveerd wordt.
“`vba
Private Sub Workbook_Deactivate()
MsgBox “Werkmap is gedeactiveerd”
End Sub
“`
5. **NewSheet**
Dit evenement wordt geactiveerd wanneer een nieuw blad aan de werkmap wordt toegevoegd.
“`vba
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox “Nieuw blad toegevoegd”
End Sub
“`
6. **Open**
Dit evenement wordt geactiveerd wanneer een werkmap geopend wordt.
“`vba
Private Sub Workbook_Open()
MsgBox “Werkmap is geopend”
End Sub
“`
7. **SheetActivate**
Dit evenement wordt geactiveerd wanneer een blad in de werkmap geactiveerd wordt.
“`vba
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox “Blad is geactiveerd”
End Sub
“`
8. **SheetBeforeDoubleClick**
Dit evenement wordt geactiveerd voordat er op een blad in de werkmap dubbelgeklikt wordt.
“`vba
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox “Dubbelklik op blad”
End Sub
“`
9. **SheetBeforeRightClick**
Dit evenement wordt geactiveerd voordat er met de rechtermuisknop op een blad in de werkmap geklikt wordt.
“`vba
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox “Rechtermuisklik op blad”
End Sub
“`
10. **SheetCalculate**
Dit evenement wordt geactiveerd wanneer een blad in de werkmap herberekend wordt.
“`vba
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
MsgBox “Blad herberekend”
End Sub
“`
11. **SheetChange**
Dit evenement wordt geactiveerd wanneer een cel op een blad in de werkmap gewijzigd wordt.
“`vba
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox “Cel gewijzigd op blad”
End Sub
“`
12. **SheetDeactivate**
Dit evenement wordt geactiveerd wanneer een blad in de werkmap gedeactiveerd wordt.
“`vba
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox “Blad is gedeactiveerd”
End Sub
“`
13. **SheetFollowHyperlink**
Dit evenement wordt geactiveerd wanneer een hyperlink op een blad in de werkmap gevolgd wordt.
“`vba
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
MsgBox “Hyperlink gevolgd op blad”
End Sub
“`
14. **SheetPivotTableAfterValueChange**
Dit evenement wordt geactiveerd na een wijziging in de waarden van een draaitabel op een blad in de werkmap.
“`vba
Private Sub Workbook_SheetPivotTableAfterValueChange(ByVal Sh As Object, ByVal TargetPivotTable As PivotTable, ByVal TargetRange As Range)
MsgBox “Waarden in draaitabel gewijzigd op blad”
End Sub
“`
15. **SheetPivotTableBeforeAllocateChanges**
Dit evenement wordt geactiveerd voordat wijzigingen toegewezen worden aan een draaitabel op een blad in de werkmap.
“`vba
Private Sub Workbook_SheetPivotTableBeforeAllocateChanges(ByVal Sh As Object, ByVal TargetPivotTable As PivotTable, ByVal ValueChangeStart As Long, ByVal ValueChangeEnd As Long, Cancel As Boolean)
MsgBox “Wijzigingen toewijzen aan draaitabel op blad”
End Sub
“`
Dit zijn de belangrijkste Workbook events in Excel VBA. Elk van deze evenementen kan worden gebruikt om specifieke code uit te voeren wanneer het evenement optreedt.