Excel VBA Objeto flutuante

0

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

    
por user130275 25.04.2012 / 22:14

1 resposta

1

Não consigo pensar em nenhuma maneira de fazer isso com formas, mas você pode adicionar um formulário de usuário ao seu projeto, em seguida, adicione os botões / rótulos / imagens que você deseja para o formulário. Por padrão, um formulário é executado separadamente das planilhas do Excel, portanto, ele 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 no seu VBAProject e selecione Inserir ... = > UserForm . Você pode usar Application.Width , Application.Height , Application.Top e Application.Left para determinar onde na tela o usuário tem sua janela do Excel e depois usar UserForm1.Width etc. para reposicionar o formulário conforme necessário para mantê-lo onde você quiser (substitua UserForm1 com o que você nomear o objeto de formulário).

Você pode ter o formulário aberto 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 assim desejar. Lembre-se de que monitorar muitas ou muitas vezes causará um impacto geral no desempenho de seus usuários.

    
por 26.04.2012 / 00:32