OPCIÓN B
En el menú de Herramientas / Opciones / en al pestaña de Ver
Hay una opción que se llama "Etiquetas de hojas", desactívala.
El problema es que esta opción te oculta todas las hojas, pero pueden cambiar el nombre si conocen la ruta desde el menú. También si conocen donde está la opción, pueden volver a activarla.
OPCIÓN C
Otra alternativa es que en las macro utilices el nombre código de la hoja.
Si tienes esto:
Sheets("Saldos").select
Puedes poner esto
Hoja1.select
Si entras a VBA, Y seleccionas una hoja en el panel de Proyecto – Vba, en la parte de abajo te aparecen las Propiedades de la hoja, notarás que hay una propiedad (Name), este nombre es el código de hoja, y solamente puede ser cambiado desde VBA, y tienes la propiedad Name, este nombre es un alias, pueden cambiarlo, pero en las macros estarás haciendo referencia al código de hoja.
OPCIÓN D
Otra opción es bloquear el libro, y cuando la macro necesite que el libro esté desbloqueado, que la macro lo desbloqueé, que realice las operaciones y al final que vuelva a bloquear el libro.
OPCIÓN E
En cada una de las hojas puedes poner esto
Sigue las Instrucciones para poner la macro en worksheet
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Name = "siemprehoja1"
End Sub
Con lo anterior, cada que modifiquen algo en la hoja, automáticamente le volverá a poner el mismo nombre.
OPCIÓN F
También puedes poner en una celda esto, puede ser cualquier celda, incluso puede estar bloqueada o en una fila oculta o puedes cambiarle el color para que no se vea :
=CELDA("ARCHIVO",A1)
No importa lo que tengas en la celda A1, no importa que te regrese el error #! VALOR!, lo importante es que esta celda se va a ejecutar siempre que quieran cambiar el nombre de la hoja, entonces, sigue las instrucciones para worsheest y pon esta macro
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
ActiveSheet.Name = "siemprehoja1"
Application.EnableEvents = True
End Sub
Con esto cada vez que intenten cambiar el nombre, le regresara el nombre que definas.