AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?

MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI

Você está em: PrincipalArtigosSérie "Como Fazer": Menus no Excel › Lições : 12
Quer receber novidades e e-books gratuitos?
« Anterior Δ Página principal ¤ Índice Próxima »
Criando menus, barras de comando e botões personalizados no Excel usando VBA
Autor: Robert Friedrick Martim
Lição 011 - Removendo os Menus Personalizados

Se você abriu cada arquivo que acompanha este módulo até este ponto, você deve ter notado que os menus são removidos. É sempre uma boa idéia remover os seus menus personalizados para assegurar que o próximo usuário não tenha uma desagradável surpresa ao tentar utilizar o Excel.

Neste breve tópico mostro as diversas formas de levar isso a cabo. Um exemplo óbvio é o método utilizado até o momento, isto é, utilizar o método Delete do controle em questão para remover o menu.

Por exemplo:

Sub delMenu()

    On Error Resume Next

    CommandBars("MENU").Delete

End Sub

O exemplo acima simplesmente remove a barra de comando “MENU” do aplicativo.

Porém, você terá situações onde deseja remover um controle que foi inserido no menu Ajuda do Excel. Neste caso, o ideal é fazer uma referência ao ID do controle que contém o controle que criamos e, então, remover o controle que desejamos. Observe a figura:

Figure 0‑6

O menu foi inserido utilizando o código:

Sub menu()

    Dim mnu As CommandBarPopup

    Dim btn As CommandBarButton

   

    Set mnu = CommandBars(1).FindControl(ID:=30010)

    Set btn = mnu.Controls.Add(msoControlButton)

       

        With btn

            .Caption = "Minha Ajuda"

            .FaceId = 984

        End With 

End Sub

Para remover o código, podemos fazer o seguinte:

Sub delMenu()

    On Error Resume Next

    Dim mnu As CommandBarPopup

    Dim btn As CommandBarButton

   

    Set mnu = CommandBars(1).FindControl(ID:=30010)

 

    mnu.Controls("Minha Ajuda").Delete

End Sub

O método acima é um tanto quanto laborioso. A grande vantagem que vejo é o fato de você estar sempre praticando os métodos e fixando o seu conhecimento de VBA. Contudo, nem sempre podemos nos dar a este luxo e o que queremos é realmente um código limpo e curto.

Neste caso, a forma mais prática de se livrar do que você fez é:

Sub resetMenu()

    Dim mnu As CommandBarPopup

    Set mnu = CommandBars(1).FindControl(ID:=30010)

    mnu.Reset

End Sub

Porém, se a forma acima ainda não lhe parece prática por ter que declarar e instanciar o objeto, você pode resolver o problema com uma linha de código apenas:

Sub resetMenu2()

    CommandBars(1).Controls(10).Reset

End Sub

O que você notará é que o método Reset é mais versátil do que o Delete, principalmente porque o método Reset não resulta em erro se o objeto realmente existe e pode ser “resetado”.

Além disso, você não precisa “resetar” exatamente o objeto onde se encontra o seu controle. Se você “resetar” o objeto pai, todos os controles sob ele serão reiniciados.

Você deve ter notado que na figura acima existe um menu popup do Adobe PDF logo após o menu Ajuda. Ao utilizar a sub-rotina resetMenu2 estou apenas “resetando” o controle de índice 10 na barra de comando 1.

Porém, eu poderia simplesmente “resetar” a barra por completo:

Sub resetMenu3()

    CommandBars(1).Reset

End Sub

A figura abaixo mostra a barra de menu reiniciada:

Figure 0‑7

Desta vez não só o botão é removido como o menu do Adobe.

Uma outra forma de se remover menus no Excel é manualmente. Se você adicionou apenas um controle e não deseja criar código para removê-lo a melhor forma é utilizar a ferramenta de personalização de menu.

Para tanto, clique em Exibir > Barras de ferramentas > Personalizar. Com a janela de personalização aberta, basta clicar na barra de comando que contém o menu ou no menu que contém o botão, clicar sobre o controle e arrastá-lo para fora do controle principal.

« Anterior Δ Página principal ¤ Índice Próxima »
Quer receber novidades e e-books gratuitos?

MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI

(Online, Vitalício, Prático e Atualizado)!

  • Chega de ser Ignorado pelo Mercado!

  • A vida não vai Melhorar Sozinha!

  • Quem domina infraestrutura, domina o Mercado.

  • Com esta Formação você vai Dominar o Conhecimento e torne-se o Profissional que as Empresas estão Buscando, "desesperadamente", mas não estão encontrando.

NÃO PROCURE VAGAS, SEJA PROCURADO!

 

Curso Completo de Excel - Curso Online com Certificado - 925 Vídeo Aulas - 22 Cursos - 120:42 horas

 

Para Todos os Detalhes, Acesse:

Curso Completo de Excel - Curso Online com Certificado - 925 Vídeo Aulas - 22 Cursos - 120:42 horas

 

https://juliobattisti.com.br/curso-infra-ti.asp

 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2026 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI