Primeiro, observe que a maioria dos recursos de proteção do Excel não são recursos de segurança. A maioria é facilmente quebrada ou contornada. Eles estão bem para impedir danos acidentais - mas não vão impedir ninguém que sabe o que estão fazendo e realmente quer ver os bits que você escondeu.
Dito isso, aqui estão algumas respostas:
Proteção Inicial
Você abordou isso, basicamente bloqueia células e oculta coisas e precisa.
Em seguida, proteja todas as folhas .
Em seguida, proteja a pasta de trabalho em si.
Folhas muito ocultas
As folhas podem ficar "muito" ocultas, o que significa que só podem ser exibidas por meio do VBA (elas não aparecem na lista de exibição na interface). Isso é feito simplesmente por meio de uma linha de VBA, que precisa ser executada pelo menos uma vez para acionar a alteração de configuração e não precisa ser mantida no arquivo depois de executada (mas isso pode ser útil para lembrar quais mais tarde):
Sheets("Sheet1").Visible = xlVeryHidden
Código VBA oculto
Defina uma senha em seu projeto. No editor do VBA, clique com o botão direito do mouse em seu módulo em Project Explorer
, escolha <ProjectName> Properties
e defina uma senha na guia Protection
.
Observe que isso pode ser forçado a abrir brutalmente.
Macros ocultas
Eu assumo aqui que você quer dizer que você não quer que eles apareçam na lista de macros quando alguém abre a janela Run Macro
?
Para fazer isso, a macro desejada é um Private Sub
ou um Function
, isso os torna não visíveis como macros, mas ainda permite que eles sejam chamados por outro código no mesmo módulo.
Eu não acho que você não possa impedir as pessoas de executarem as macros visíveis e você não pode atribuir macros ocultas a botões.