24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 19: Como Acessar suas Macros através da Interface de Usuário 323

diferem em conteúdo — dependendo da posição em que o Excel está

— aparecem mais de uma vez na lista de CommandBars disponíveis.

Você poderia pensar que é melhor fazer referência a CommandBars

usando sua propriedade Index. Errado! Mas, até isso pode causar

problemas, porque os números do Index nem sempre permaneceram

constantes através das diferentes versões do Excel. Na verdade, a

propriedade Index pode até variar dentro de uma única versão do Excel.

Referência a controles em um CommandBar

Um objeto CommandBar contém controles, que são botões, menus ou

itens de menu. O seguinte procedimento exibe a propriedade Caption

para o primeiro controle no menu de célula acessível pelo botão direito:

Sub ShowCaption()

MsgBox Application.CommandBars(“Cell”). _

Controls(1).Caption

End Sub

Quando você executa este procedimento, vê a caixa de mensagem

mostrada na Figura 19-6. O e comercial (&) é usado para indicar a

letra sublinhada no texto — o toque de teclado que executará o item

do menu.

Figura 19-6:

Exibindo a

propriedade

Caption em

um controle.

LEMBRE-SE

Em alguns casos, objetos Control em um menu de atalho contêm outros

objetos Control. Por exemplo, o controle Sort, obtido ao clicar com o botão

direito nas células contêm outros controles.

Cada controle tem uma propriedade Name e uma Id. Você pode acessar

um controle usando qualquer dessas propriedades (mas localizar um

controle pela sua Id é um pouco mais complexo):

Sub AccessControlByName()

MsgBox CommandBars(“Cell”).Controls(“Copy”).Caption

End Sub

Sub AccessControlById()

MsgBox CommandBars(“Cell”).FindControl(ID:=19).Caption

End Sub

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!