Sie sind auf Seite 1von 5

Module3 - 1

Option Explicit
Sub CreateMenu()
'
This sub should be executed when the workbook is opened.
'
NOTE: There is no error handling in this subroutine
Dim MenuSheet As Worksheet
Dim MenuObject As CommandBarPopup
Dim
Dim
Dim
Dim

MenuItem As Object
SubMenuItem As CommandBarButton
Row As Integer
MenuLevel, NextLevel, PositionOrMacro, Caption, Divider, FaceId

''''''''''''''''''''''''''''''''''''''''''''''''''''
'
Location for menu data
Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
''''''''''''''''''''''''''''''''''''''''''''''''''''
'

Make sure the menus aren't duplicated


Call DeleteMenu

'

Initialize the row counter


Row = 2

'
'

Add the menus, menu items and submenu items using


data stored on MenuSheet
Do Until IsEmpty(MenuSheet.Cells(Row, 1))
With MenuSheet
MenuLevel = .Cells(Row, 1)
Caption = .Cells(Row, 2)
PositionOrMacro = .Cells(Row, 3)
Divider = .Cells(Row, 4)
FaceId = .Cells(Row, 5)
NextLevel = .Cells(Row + 1, 1)
End With

'

Select Case MenuLevel


Case 1 ' A Menu
Add the top-level menu to the Worksheet CommandBar
Set MenuObject = Application.CommandBars(1). _
Controls.Add(Type:=msoControlPopup, _
Before:=PositionOrMacro, _
Temporary:=True)
MenuObject.Caption = Caption
Case 2 ' A Menu Item
If NextLevel = 3 Then
Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup)
Else
Set MenuItem = MenuObject.Controls.Add(Type:=msoControlButton)
MenuItem.OnAction = PositionOrMacro
End If
MenuItem.Caption = Caption
If FaceId <> "" Then MenuItem.FaceId = FaceId
If Divider Then MenuItem.BeginGroup = True

Case 3 ' A SubMenu Item


Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubMenuItem.Caption = Caption
SubMenuItem.OnAction = PositionOrMacro
If FaceId <> "" Then SubMenuItem.FaceId = FaceId
If Divider Then SubMenuItem.BeginGroup = True
End Select
Row = Row + 1
Loop
End Sub

Module3 - 2
Sub DeleteMenu()
'
This sub should be executed when the workbook is closed
'
Deletes the Menus
Dim MenuSheet As Worksheet
Dim Row As Integer
Dim Caption As String
On Error Resume Next
Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
Row = 2
Do Until IsEmpty(MenuSheet.Cells(Row, 1))
If MenuSheet.Cells(Row, 1) = 1 Then
Caption = MenuSheet.Cells(Row, 2)
Application.CommandBars(1).Controls(Caption).Delete
End If
Row = Row + 1
Loop
On Error GoTo 0
End Sub
Private Sub Workbook_Open()
Call CreateMenu
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call DeleteMenu
End Sub
Sub DummyMacro()
MsgBox "This is a do-nothing macro."
End Sub
Sub MenuSheet()
Worksheets("MenuSheet").Activate
End Sub
Sub Notes()
Worksheets("Notes").Activate
End Sub
Sub TableofContents()
Worksheets("TableofContents").Activate
End Sub
Sub Upachayas()
Worksheets("Upachayas").Activate
End Sub
Sub NatalDataEntry()
Worksheets("NatalDataEntry").Activate
'Use only for user form entry'
Rem ChartData.Show
End Sub
Sub DefaultLocation()
Worksheets("DefaultLocation").Activate
End Sub
Sub Summary()
Worksheets("Summary").Activate
End Sub
Sub NatalDasas()

Module3 - 3
Worksheets("NatalDasas").Activate
End Sub
Sub NatalDasasFull()
Worksheets("NatalDasasFull").Activate
End Sub
Sub Divisionals()
Worksheets("Divisionals").Activate
End Sub
Sub TransitDataEntry()
Worksheets("TransitDataEntry").Activate
End Sub
Sub TSummary()
Worksheets("TSummary").Activate
End Sub
Sub TDasas()
Worksheets("TDasas").Activate
End Sub
Sub TransitDivisionals()
Worksheets("TransitDivisionals").Activate
End Sub
Sub SAVCalc()
Worksheets("SAVCalc").Activate
End Sub
Sub SAVCalc2()
Worksheets("SAVCalc2").Activate
End Sub
Sub PDF()
Worksheets("PDF").Activate
End Sub
Sub SouthernChart()
Worksheets("SouthernChart").Activate
End Sub
Sub TransitChartSouth()
Worksheets("TransitChartSouth").Activate
End Sub
Sub NorthernChart()
Worksheets("NorthernChart").Activate
End Sub
Sub TransitChartNorth()
Worksheets("TransitChartNorth").Activate
End Sub
Sub Acknowledgements()
Worksheets("Acknowledgements").Activate
End Sub
Sub H1()
Worksheets("H1").Activate
End Sub
Sub H2()
Worksheets("H2").Activate
End Sub
Sub H3()

Module3 - 4
Worksheets("H3").Activate
End Sub
Sub H4()
Worksheets("H4").Activate
End Sub
Sub H5()
Worksheets("H5").Activate
End Sub
Sub H6()
Worksheets("H6").Activate
End Sub
Sub H7()
Worksheets("H7").Activate
End Sub
Sub H8()
Worksheets("H8").Activate
End Sub
Sub H9()
Worksheets("H9").Activate
End Sub
Sub H10()
Worksheets("H10").Activate
End Sub
Sub H11()
Worksheets("H11").Activate
End Sub
Sub H12()
Worksheets("H12").Activate
End Sub
Sub TransitH1()
Worksheets("TransitH1").Activate
End Sub
Sub TransitH2()
Worksheets("TransitH2").Activate
End Sub
Sub TransitH3()
Worksheets("TransitH3").Activate
End Sub
Sub TransitH4()
Worksheets("TransitH4").Activate
End Sub
Sub TransitH5()
Worksheets("TransitH5").Activate
End Sub
Sub TransitH6()
Worksheets("TransitH6").Activate
End Sub
Sub TransitH7()
Worksheets("TransitH7").Activate
End Sub
Sub TransitH8()

Module3 - 5
Worksheets("TransitH8").Activate
End Sub
Sub TransitH9()
Worksheets("TransitH9").Activate
End Sub
Sub TransitH10()
Worksheets("TransitH10").Activate
End Sub
Sub TransitH11()
Worksheets("TransitH11").Activate
End Sub
Sub TransitH12()
Worksheets("TransitH12").Activate
End Sub

Das könnte Ihnen auch gefallen