Página 1 de 1
Acessar 'Application.OnKey ='
Enviado: 29 Out 2017 às 14:33
por RuiPahul
Olá.
Como posso codificar no VBA o exemplo abaixo:
If Application.OnKey "^{F1}" = ON then
Application.OnKey "^{F1}" = OFF
end if
isto é, saber se determinado 'onkey' está 'on' ou 'off', e daí ligá-lo ou desligá-lo.
Desde ja obrigado
Rui
Re: Acessar 'Application.OnKey ='
Enviado: 29 Out 2017 às 14:51
por gfranco
Boa tarde. RuiPahul.
Eu. Costumo proceder da seguinte forma quando trabalho com o onkey no vba:
Faço a ativação dela no workbook open e já deixo um application.onkey com procedure em branco no workbook before close para volta-las ao funcionamento normal quando aquela pasta for fechada.
Re: Acessar 'Application.OnKey ='
Enviado: 29 Out 2017 às 16:00
por RuiPahul
Oi GFranco,
Na realidade o meu problema é que o 'ctrl+F1' funciona no teclado. Ele mostra ou oculta a barra de ferramentas. Mas em uma SUB não 'funciona'. Em uma determinada planilha eu não posso ter na tela a barra de ferramentas. Por isso queria oculta-la e não estou conseguindo.
Re: Acessar 'Application.OnKey ='
Enviado: 30 Out 2017 às 08:28
por alexandrevba
Bom dia!!
Caso sua ideia seja, usar essas teclas com efeito em um arquivo (workbook), tente o exemplo abaixo.
Código: Selecionar todosOption Explicit
Private Sub Workbook_Activate()
'Este código dentro do módulo EstaPasta_de_trabalho
Application.OnKey "^{F1}", "Teste"
End Sub
Código: Selecionar todosPrivate Sub Workbook_Deactivate()
'Este código dentro do módulo EstaPasta_de_trabalho
Application.OnKey "^{F1}"
End Sub
Código: Selecionar todosSub Teste()
'Este código dentro de um módulo comum
MsgBox "This is a testing message "
End Sub
Fonte:
https://www.rondebruin.nl/win/s4/win012.htm
Obs:Lembre se de salvar e fechar, depois abrir o arquivo após inserir o código nos múlos indicado!
Att
Re: Acessar 'Application.OnKey ='
Enviado: 30 Out 2017 às 11:02
por RuiPahul
Olá,
Agradeço as vossas ‘soluções’, que testei mas não resolvem o meu ‘problema’. Acho que apresentei mal a minha dificuldade. Vou tentar ser maIs explicito.
Eu chamo o Excel, ele se apresenta, por exemplo, com a ‘Faixa de Opções’ oculta. Então eu pressiono o ‘CTRL+F1’ e a ‘Faixa de Opções’ apresenta-se na tela. Ok. Tudo bem. Aí eu fecho o Excel. Ok. Tudo bem. Volto a chamar o Excel e ele vem apresentando a ‘Faixa de Opções’, e aí eu tenho o ‘meu problema’.
Então, estando no Excel, com ou sem dados não importa, se eu pressionar ‘CTRL+F1’ a ‘Faixa de Opções’ se estiver presente vai ocultar-se, se estiver oculta ela vai aparecer. É um ‘ponteiro’ ON/OFF, um Liga/Desliga, um 1/0 em ‘qualquer lugar’ do Excel. Exatamente como outros ‘ponteiros’ do Excel, como ‘Negrito’ Ligado/Desligado, como ‘Sublinhado’ Ligado/Desligado, como ‘ScreenUpdating’ True/False, etc, etc. Mas nestes exemplos (Negrito, ScreenUpdating, etc) eu posso ligá-los e/ou desligá-los, de acordo com o interesse da minha programação.
Mas não sei como programar o ‘apresentar/ocultar a Faixa de Opções’.
Obrigado pela vossa paciência, e ajuda.
Att. Rui
Re: Acessar 'Application.OnKey ='
Enviado: 30 Out 2017 às 11:42
por alexandrevba
Boa tarde!!
Há um padrão comum no pacote office (especialmente Excel), que a instalação armazena uma "configuração" do usuário e também recebe a "configuração" de uma outra instalação.
Exemplo: Se eu expandi minha barra de formula, salvar e fachar esse arquivo, qualquer instancia do excel que for aberta ficará com essa opção ativa, etc.
Se você ocultar via macro a barra de menu, ao fechar o arquivo terá que exibir-lá novamente e vice versa, do contrário a instalação desse PC vai pegar a ultima alteração do usuário e manter na próxima instancia que vai ser aberto em outro momento.
De acordo com seu título (do seu post), sua dúvida era sobre ('Application.OnKey ='), mas creio que você deve manipular os objetos(barra de menu) do workbook, com a mesma ideai que eu havia passado no post anterior( ou seja, ao ativar, abrir, desativa, fechar o arquivo).
Att
Re: Acessar 'Application.OnKey ='
Enviado: 30 Out 2017 às 20:20
por RuiPahul
Oi, Alexandre
A solução que você me apresentou eu testei. Ela bloqueia a utilização do ‘Ctrl+F1’, isto é, quando pressiono ‘Ctrl+F1’ não faz o ‘ocultar/re-exibir’ da Faixa de Opções, mas aparece uma mensagem dizendo ‘Esta é uma mensagem de teste’.
Mas a minha necessidade é ocultar a Faixa de Opções quando entro em determinada planilha e antes de apresentar os repetivos dados (Ex: Plan3). As diversas planilhas deste arquivo Excel podem ter, ou não ter, a Faixa de Opções ativada. Mas a Plan3, não tem edição de dados, só apresentação de dados. Não precisa nunca da Faixa de Opções. Quando programei o layout da Plan3, não previ o eventual exibir da Faixa de Opções. Então eu não posso (isto é, eu não quero) ter a Faixa de Opções visivel porque me ‘adultera’ o layout da tela. Quando me esqueço, tenho de sair da Plan3, pressionar o ‘Ctrl+F1’ e voltar a entrar na Plan3. Nada de grave, mas ... não é ‘agradável’.
Eu posso, sem qualquer duvida, modificar o layout da Plan3. Mas o layout que eu quero fica prejudicado e fica mais fácil (penso eu) ocultar a Faixa de Opções por código VBA. Não sei como fazer, mas vou descobrir. O grande prazer da programação é superar estes desafios, né?
Att. Rui
Re: Acessar 'Application.OnKey ='
Enviado: 30 Out 2017 às 21:16
por RuiPahul
Olá,
Resolvi o meu problema.
Na planilha em questão (ex: Plan3) coloquei o código abaixo:
--------------------------------------------------------------------
Option Explicit
Private Sub WorkSheet_Activate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
Private Sub WorkSheet_Deactivate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub
-----------------------------------------------------------------------
Agradeço a todos a ajuda prestada. Muito obrigado.
Att. Rui.