0
在Access 2003中,創建了一個自定義菜單。我如何使用VBA查看菜單的詳細信息?查看自定義菜單的信息
I.E.打印出每個選項的作用? (名稱,&查詢它運行) 如果自定義菜單中有一個選項爲「運行日報」和什麼做的是運行查詢qry_dly題爲
那我就非常喜歡看,像這樣 每天運行的VBA輸出 - > qry_dly
在Access 2003中,創建了一個自定義菜單。我如何使用VBA查看菜單的詳細信息?查看自定義菜單的信息
I.E.打印出每個選項的作用? (名稱,&查詢它運行) 如果自定義菜單中有一個選項爲「運行日報」和什麼做的是運行查詢qry_dly題爲
那我就非常喜歡看,像這樣 每天運行的VBA輸出 - > qry_dly
這可能需要一些調整,具體取決於菜單的結構。但是一旦您掌握了這種工作方式,您應該可以根據需要對其進行更改。
首先,您需要找出自定義菜單的名稱。如果你已經知道,那麼跳過這一步。否則抓住從此返回的名稱:
Dim x As Integer
For x = 1 To CommandBars.Count
If CommandBars(x).BuiltIn = False Then
Debug.Print x, CommandBars(x).Name, CommandBars(x).BuiltIn
End If
Next x
然後,將自定義菜單的名稱傳遞給此過程。就像我說的,根據菜單的設置方式,這可能會或可能不會返回所有內容,也就是您可能需要對其進行定製的位置:
Private Sub ReadMenuControls(ByVal strCmdBar As String)
On Error GoTo errhandler
Dim x, y As Integer
Dim SubMenu As Object
With CommandBars(strCmdBar)
Debug.Print "Control Count Main: ", .Controls.Count
For x = 1 To .Controls.Count
With .Controls(x)
Debug.Print x & " <== " & .Caption & " ==>"
If .Type = 1 Then 'Command Button
Debug.Print "Button", x, .Caption, .Type, .ID, .FaceId, .Style, .onaction
Else 'If .Type = 10 Then 'Menu
Set SubMenu = CommandBars(strCmdBar).Controls(x)
For y = 1 To SubMenu.Controls.Count
With .Controls(y)
Debug.Print " * Button", y, .Caption, .Type, .ID, .FaceId, .Style, .onaction
End With
Next
End If
End With
Next
End With
Exit Sub
errhandler:
If Err.Number <> 438 Then
Debug.Print "ReadMenuControls", Err.Number, Err.description
End If
Resume Next
End Sub