Obligar a sus clientes para habilitar las macros de Excel

Para utilizar cualquiera de macros en Excel, los usuarios deben habilitar las macros. Es decir, tienen que dar permiso Excel ejecutar macros en su entorno. Para habilitar las macros, los usuarios hacen clic en el botón de contenido en la advertencia de seguridad que aparece por encima de la barra de fórmulas Habilitar.

imagen0.jpg

La conclusión es que usted puede escribir todas las macros de lujo en el mundo, pero nunca se quedará a menos que sus usuarios habilitan las macros. Esto plantea la pregunta-se puede obligar a los usuarios a habilitar las macros? La respuesta es sí - con un poco de engaño.

La idea es relativamente simple. Se crea una hoja denominada, por ejemplo, Start. Esta hoja contiene sólo una simple advertencia indicando que las macros deben estar habilitadas. A continuación, ocultar todas las hojas del libro de trabajo a excepción de que la hoja de START. Por último, se escribe una macro simple que unhides todas las hojas cuando se abre el libro.

image1.jpg

En este punto, cuando se abre el libro, Excel le pedirá al usuario para habilitar las macros. Los usuarios se verán obligados a hacerlo porque lo único que van a ver es su hoja de Inicio. Las otras hojas estarán ocultos!

Para hacer este trabajo de la técnica, se necesitan dos macros: Uno cueros macro todos, pero la hoja de START cuando el libro se cierra y otra macro que unhides todos, pero la hoja de START cuando se abre el libro.

En primer lugar, hacer frente a las acciones que deben ocurrir cuando el libro se cierra. :

  1. Activar Editor de Visual Basic presionando ALT + F11 en el teclado

  2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a él para ver todas las hojas.

  3. Haga clic en ThisWorkbook.

  4. En el cuadro desplegable Evento, seleccione el evento BeforeClose.

    image2.jpg
  5. Escriba o pegue el siguiente código:

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Paso 1: Declare sus ws variablesDim Como Worksheet'Step 2: Unhide los SheetSheets partir ("START") Visible = xlSheetVisible'Step. 3: Comienza recorriendo toda worksheetsFor Cada ws En ThisWorkbook.Worksheets 'Paso 4: Revise cada hoja nameif ws.Name lt;> "START" Then'Step 5: Ocultar la sheetws.Visible = xlVeryHiddenEnd If'Step 6: Loop al siguiente worksheetNext ws'Step 7: Guarde el workbookActiveWorkbook.SaveEnd Sub

En el paso 1, se declara un objeto llamado ws para crear un contenedor de memoria para cada hoja de trabajo que va a recorrer.

En el paso 2, se asegura de que la hoja de START es visible.

En el paso 3, se inicia el bucle, diciendo a Excel que desea evaluar todas las hojas de trabajo en este libro.

En el paso 4, sólo tiene que comparar el nombre START a la hoja que se está actualmente en bucle. Este paso asegura que las acciones que vienen a continuación se aplican a todas las hojas excepto la hoja de START.

Si los nombres de las hojas son diferentes, en el paso 5 se oculta la hoja mediante la propiedad xlVeryHidden. Esta propiedad ya no sólo oculta la hoja, sino también evita que el usuario unhiding manualmente mediante el uso de la interfaz de usuario.

Usted bucle de nuevo para obtener la siguiente hoja en el paso 6.

En el paso 7, después se evalúan todas las hojas, la macro guarda el libro y termina.

Ahora, tienes que escribir una macro para manejar todas las acciones que tienen que pasar cuando se abre el libro:

  1. Activar Editor de Visual Basic presionando ALT + F11.

  2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a él para ver todas las hojas.

  3. Haga clic en ThisWorkbook.

  4. En el cuadro desplegable Evento, seleccione el evento Open.

    image3.jpg
  5. Escriba o pegue el siguiente código:

Private Sub Workbook_Open () 'Paso 1: Declare sus ws variablesDim Como Worksheet'Step 2: Inicio de bucle a través de todos worksheetsFor Cada ws En ThisWorkbook.Worksheets'Step 3: Unhide Todo Worksheetsws.Visible = xlSheetVisible'Step 4: Bucle para próximos ws worksheetNext 'Paso 5:. Ocultar el inicio SheetSheets ("START") Visible = xlVeryHiddenEnd Sub

En el paso 1, se declara un objeto llamado ws para crear un contenedor de memoria para cada hoja de cálculo que recorrer.

En el paso 2, se inicia el bucle, diciendo a Excel que desea evaluar todas las hojas de trabajo en este libro.

En el paso 3, de que muestre la hoja que se está actualmente en bucle. Este paso unhides efectivamente todas las hojas, ya que cada hoja se hace visible.

Usted bucle de nuevo para obtener la siguiente hoja en el paso 4.

Después de todas las hojas se hacen visibles, Paso 5 oculta la hoja de START. Una vez más, se utiliza la propiedad xlVeryHidden para que el usuario no podrá Para mostrar manualmente la hoja mediante el uso de la interfaz de usuario.

Después se implementan ambas macros, tendrá un libro que va a funcionar sólo si el usuario permite macros!




» » » » Obligar a sus clientes para habilitar las macros de Excel