Objeto flutuante Excel VBA

Objeto flutuante Excel VBA

Estive em todos os fóruns e não tive muita sorte com o meu problema. Quero criar uma barra de botões personalizada usando formas e encaixá-la na parte inferior do Excel. Isso fica complicado porque cada usuário tem um monitor e uma resolução de tela diferentes. Depois de fazer algumas pesquisas, parece que posso usar application.height e object.top para localizar a barra de botões. O problema é que, à medida que rolo a página para cima e para baixo, preciso que a macro seja executada na rolagem. Isso é possível?

Responder1

Não consigo pensar em nenhuma maneira de fazer isso com formas, mas você pode adicionar um UserForm ao seu projeto e, em seguida, adicionar os botões/rótulos/imagens que deseja ao formulário. Por padrão, um formulário é executado separadamente das planilhas do Excel, portanto, não é afetado pela rolagem, mas permanece na parte superior da janela do Excel.

Para adicionar um formulário, abra a janela de código, clique com o botão direito em seu VBAProject e selecioneInserir...=>Formulário de usuário. Você pode usar Application.Width, Application.Height, Application.Tope Application.Leftpara determinar onde na tela o usuário está sua janela do Excel e então usar UserForm1.Widthetc. para reposicionar o formulário conforme necessário para mantê-lo onde você deseja (substitua UserForm1pelo nome que você der ao objeto de formulário).

Você pode abrir o formulário em um local específico na tela, mas os usuários podem movê-lo (não tentei bloquear a posição de um formulário antes). Você terá que determinar quais eventos monitorar para reposicionar o formulário, se desejar. Lembre-se de que monitorar muitos ou com muita frequência causará um impacto geral no desempenho de seus usuários.

informação relacionada