Eu tive uma questão semelhante. Eu tenho botão em uma pasta de trabalho. Se o botão for clicado, desejo que o Excel abra a caixa de diálogo de localização com a opção "pesquisar em todas as pastas de trabalho" já selecionada em vez da padrão "dentro da planilha", não importa o quê.
Além disso, eu queria que o botão funcionasse, considerando as opções ocultas ou exibidas e se alguém fez alterações manualmente. Isso é complicado porque o Excel, por padrão, não mostra as opções no início, mas as lembra e as mostra novamente na próxima vez, se alguém as exibisse antes.
Para garantir que as teclas funcionem, precisamos de uma série de teclas que defina a configuração independentemente do estado inicial. Demorou um pouco para mexer, mas achei um que funciona.
Aqui está o meu código para a versão em inglês do Excel. Para outros idiomas, é necessário alterar as chaves de acordo.
Sub Commanbutton_Click()
Cells(1, 1).Select
SendKeys "^f", True
SendKeys "{TAB 15}"
SendKeys " ", True
SendKeys "%t%t", True
SendKeys "{TAB 2}", True
SendKeys "{DOWN}{DOWN}{ENTER}", True
SendKeys "%t%t", True
End Sub
Você pode experimentá-lo manualmente:
Pressione CTRL + F para o diálogo de localização. Pressione TAB 15 vezes para pousar em "Opções" ou no menu suspenso "Pesquisar dentro".
Pressione espaço e
1) As opções são exibidas ou 2) o menu suspenso é ativado e nada acontece
Pressione Alt + T duas vezes para redefinir o cursor para a caixa de entrada de localização
Pressione TAB duas vezes, o levará à pesquisa no menu suspenso, não importa o quê (porque as etapas anteriores garantem que as opções sejam realmente exibidas!)
Pressione a seta PARA BAIXO duas vezes para selecionar "Pasta de trabalho" e ENTER para selecionar
Pressione ALT + T duas vezes para redefinir o cursor para a caixa de entrada de localização novamente.
Espero que isso ajude alguém que tenha um problema semelhante. Muitos usuários do Google me disseram que não é possível pré-selecionar "pesquisar em todas as pastas de trabalho" com o VBA, mas dessa maneira funciona!
Para que ele funcione com idiomas diferentes, é necessário verificar o idioma e usar o CASE para alternar para a rotina adequada com os atalhos adequados.