Separador de Menu nos Menus de Atalhos
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Marcelo:
Boa noite,
no link: usandoaccess.com.br/tutoriais/criar-menus-de-atalho-com-vba-ou-macro
Há funções para criar os menus de atalho.
Gostaria de saber como inserir um separador para melhor organizar os menus.
Desde já, grato.
Suporte:
Marcelo, usando macro é bem fácil, mas pelo VBA não encontrei ainda o comando para implementar o separador.
Veja se este exemplo atende, implementando uma linha tracejada. Acrescente a parte em vermelho no código e teste.
Public Function fncCriarMenuRelatorio()
Dim cb As CommandBar
Dim A As String
On Error Resume Next
A = "AtalhoRelatorio" 'nome do atalho
If Application.CommandBars(A).enabled Then Application.CommandBars(A).Delete
Set cb = fncAddMenu(A, True)
Call fncAddBotao(cb, 4, "&Imprimir", "=fncImprimir()") 'botão Imprimir
Call fncAddBotao(cb, 201, "&PDF", "=fncGerarPDF()") 'botão Gerar PDF
Call fncAddBotao(cb, 0, "---------------------", "")
Call fncAddBotao(cb, 0, "&Zoom 50", "=fncZoom(50)") 'Botão Zoom 50
Call fncAddBotao(cb, 247, "&Configurar Página", "=fncConfigurarPagina()")
Set cb = Nothing
End Function
Usuário Marcelo:
Opa, grato pela sugestão!
Antes de implementara sua dica, busquei descobrir como implementar o separador nativo do CommandBar.
Daí, depois de muito pesquisar, consegui. E fiz uma pequena alteração na sua função de adicionar botão ao menu.
Veja como ficou:
Public Function fncAddBotao(menu As CommandBar, faceid As Long, caption As String, _
onaction As String, Optional id As Integer = 1, _
Optional Separador As Boolean) As CommandBarButton
Dim cbb As CommandBarButton
Set cbb = menu.Controls.Add(msoControlButton, id, , , True)
With cbb
.caption = caption
.onaction = onaction
.Style = msoButtonAutomatic
.faceid = faceid
.BeginGroup = Separador
End With
End Function
Daí, para exibir o separador, basta setar o parâmetro Separador para True.
Por exemplo, considere o menu:
Clientes
Cidades
Produtos
Categoria de produtos
Digamos que eu queira que haja um separador entre Cidades e Produtos.
Para isso, basta eu setar para true o parâmetro Separador do botão Produtos.
Isso faz com que o VBA entenda que há um novo grupo de botões a partir do botão produtos.
Grato mais uma vez, Avelino!!
Suporte:
Marcelo, muito obrigado pelo feedback !
Estarei atualizando o projeto.
Não há comentário |