lunes, 4 de abril de 2016

Parte 3.- Escribir el Código

Introducción


El siguiente paso es añadir el código VBA que se potencia la forma. Cinco procedimientos de código diferentes (a veces llamados macros) necesitan ser escritas. 

En primer lugar, un procedimiento para "inicializar" la forma cuando se abre; un procedimiento para responder al clic de cada uno de los tres botones de comando; y un procedimiento para abrir el formulario automáticamente cuando se abre el documento.

La inicialización del formulario


En el Editor de Visual Basic abrir la ventana de código del formulario seleccionando la forma y presionando la tecla F7. Alternativamente haga clic derecho en el nombre del formulario en el panel Explorador de proyectos y seleccione Ver código en el menú contextual.

En la parte superior de la ventana de código hay dos listas desplegables, General y declaraciones. Abra la lista general, desplácese hacia abajo y seleccione formulario de usuario a continuación, abra la lista de declaraciones y seleccione Inicializar.

Usted puede notar que el Editor de Visual Basic intenta anticiparse a sus necesidades y también entra en el texto:

Private Sub UserForm_Click()

End Sub
Por desgracia esto no es lo que necesita, pero puede ignorar o, si lo prefiere, puede eliminarlo (el Editor de Visual Basic, se eliminarán todos modos después, no se utilice, cuando se compila el código).

El Editor de Visual Basic ha escrito las primeras y últimas líneas del procedimiento de evento UserForm Initialize:

Private Sub UserForm_Initialize()

End Sub

Cualquier código que escribe para este procedimiento debe introducirse entre estas dos líneas.

El evento Initialize se produce cuando se abre el formulario, para que pueda hacer uso de ella para establecer la forma lista para su uso, mediante el establecimiento de los valores predeterminados para los cuadros de texto o grupos de opciones, y llenando las listas de los cuadros combinados.

 optGreeting1.Value = True

Por lo general, es una buena idea establecer un valor predeterminado para un grupo de opciones. Se recuerda al usuario que una elección tiene que ser hecho. Todo lo que tiene que hacer es fijar el valor de uno de los botones de opción a cierto con esta línea de código:

NOTA: Es una buena práctica de código escrito para presionar la tecla Tab antes de escribir una línea de código para aplicar sangría a la línea del margen (consulte el procedimiento de código completo más abajo). Esto hace mucho más fácil de bacalao para leer más tarde.

Al llenar la lista de un cuadro combinado, cada elemento debe añadirse en el orden en que desea que aparezca:

With cboInterviewLocation
      .AddItem "London"
      .AddItem "San Francisco"
      .AddItem "Lunar Station"
      .AddItem "Jupiter Station"
      .AddItem "Deep Space 7"
      .AddItem "Deep Space 9"
   End With

NOTA: Esto se llama "Con la declaración". Se evita tener que escribir "CBO Entrevista ubicación" cada vez que añada un elemento. "Con las declaraciones" ahorrar tiempo en la escritura de código y ayudar a la ejecución de código con mayor rapidez.

Para establecer un valor inicial para un cuadro de texto introduce una línea similar a la siguiente:

txtInterviewTime.Value = "10.00 am"

Aquí está el procedimiento UserForm_Initialize acabada para el formulario de ejemplo.

Private Sub UserForm_Initialize()
   optGreeting1.Value = True
   With cboInterviewLocation
      .AddItem "London"
      .AddItem "San Francisco"
      .AddItem "Lunar Station"
      .AddItem "Jupiter Station"
      .AddItem "Deep Space 7"
      .AddItem "Deep Space 9"
   End With
   With cboInterviewDay
      .AddItem "Monday"
      .AddItem "Tuesday"
      .AddItem "Wednesday"
      .AddItem "Thursday"
      .AddItem "Friday"
   End With
   With cboInterviewDuration
      .AddItem "½ hour"
      .AddItem "1 hour"
      .AddItem "2 hours"
      .AddItem "all morning"
      .AddItem "all afternoon"
      .AddItem "all day"
   End With
   With cboSenderAddress
      .AddItem "London"
      .AddItem "Jupiter Station"
      .AddItem "Deep Space 9"
   End With
End Sub

Codificación del botón 'Borrar'


Al hacer clic en este botón restaurará el formulario a sus valores originales. se vaciarán todos los cuadros de texto y los cuadros combinados (es decir, en blanco) y cualquier opción de restablecimiento grupos. Utilice las listas desplegables en la parte superior de la ventana de código para crear un cmd Claro procedimiento clic.

NOTA: Otra forma de abrir un procedimiento de evento para un control es hacer doble clic en el control de la ventana de diseño de formularios.

Aquí está el código de procedimiento para el formulario de ejemplo:

Private Sub cmdClear_Click()
   optGreeting1.Value = True
   txtRecipientName.Value = Null
   txtRecipientAddress.Value = Null
   txtSalutation.Value = Null
   txtPosition.Value = Null
   cboInterviewLocation.Value = Null
   cboInterviewDay.Value = Null
   txtInterviewDate.Value = Null
   txtInterviewTime.Value = Null
   cboInterviewDuration.Value = Null
   txtSenderName.Value = Null
   txtSenderPosition.Value = Null
   cboSenderAddress.Value = Null
End Sub

Codificación el botón "Cancelar"

Este botón permite al usuario para salir sin crear una carta. Al hacer clic en el botón Cancelar se cerrará el formulario de usuario y desecha el documento activo (la carta sin terminar):

Private Sub cmdCancel_Click()
   Unload Me
   ActiveDocument.Close SaveChanges:=False
End Sub

Codificación el botón "OK"


El botón OK tiene que realizar varias tareas. Aquí hay unos ejemplos…

Se debe interpretar la elección del usuario a partir de un grupo de opciones y convertirlo en un valor adecuado para entrar en uno de los marcadores del documento. Para ello, se declara la primera variable (texto) de cadena y el uso de una serie de "Si los estados" para colocar un valor adecuado en la variable dependiendo de cuál de los botones de opción tiene un valor de "verdad":

Dim strGreeting As String
If optGreeting1 = True Then strGreeting = "Yours sincerely"
If optGreeting2 = True Then strGreeting = "Yours faithfully"
If optGreeting3 = True Then strGreeting = "Kind regards"
If optGreeting4 = True Then strGreeting = "Live long and prosper"

A veces un valor simple, como una de las opciones que ofrece el cuadro combinado cboSenderAddress necesita ser traducido en algo más elaborado, tal como una dirección de varias líneas:

Dim strSenderAddress As String
If cboSenderAddress.Value = "London" Then
   strSenderAddress = "Galactic Enterprises" _
      & vbCrLf & "1001 Federation Plaza" _
      & vbCrLf & "London" & vbCrLf & "Earth"
End If

NOTA: En esta sección del código utiliza el carácter de subrayado "_" para romper líneas de código para que sean más fáciles de leer, y el VBA palabra clave "vbCrLf", que representa un salto de línea en la cadena resultante.

Por último, el procedimiento cmdOK_Click debe transferir los valores mantenidos en las variables anteriores, y los consignados en los otros cuadros de texto y los cuadros combinados, a los marcadores en la carta documento. Cada valor se asigna a un marcador con una línea como la siguiente:

ActiveDocument.Bookmarks("Salutation").Range.Text = txtSalutation.Value

Como hay una gran cantidad de ellas, una "Con la declaración" se puede utilizar. El procedimiento completo se muestra a continuación. Tenga en cuenta también el uso de Application.ScreenUpdating para ocultar los cambios que aparecen en pantalla hasta que el proceso finalice. El procedimiento termina mediante el cierre de la forma.

Private Sub cmdOK_Click()
   Dim strGreeting As String
   Dim strSenderAddress As String
   If optGreeting1 = True Then strGreeting = "Yours sincerely"
   If optGreeting2 = True Then strGreeting = "Yours faithfully"
   If optGreeting3 = True Then strGreeting = "Kind regards"
   If optGreeting4 = True Then strGreeting = "Live long and prosper"
   If cboSenderAddress.Value = "London" Then
      strSenderAddress = "Galactic Enterprises" _
         & vbCrLf & "1001 Federation Plaza" _
         & vbCrLf & "London" & vbCrLf & "Earth"
   End If
   If cboSenderAddress.Value = "Jupiter Station" Then
      strSenderAddress = "Galactic Enterprises" _
         & vbCrLf & "555 Upper Commerce Ring North" _
         & vbCrLf & "Jupiter Station"
   End If
   If cboSenderAddress.Value = "Deep Space 9" Then
      strSenderAddress = "Galactic Enterprises" _
         & vbCrLf & "140 Main Concourse West" _
         & vbCrLf & "UFP Deep Space 9"
   End If
   Application.ScreenUpdating = False
   With ActiveDocument
      .Bookmarks("RecipientName").Range.Text = txtRecipientName.Value
      .Bookmarks("RecipientAddress").Range.Text = txtRecipientAddress.Value
      .Bookmarks("Salutation").Range.Text = txtSalutation.Value
      .Bookmarks("Position").Range.Text = txtPosition.Value
      .Bookmarks("InterviewLocation").Range.Text = cboInterviewLocation.Value
      .Bookmarks("InterviewDay").Range.Text = cboInterviewDay.Value
      .Bookmarks("InterviewDate").Range.Text = txtInterviewDate.Value
      .Bookmarks("InterviewTime").Range.Text = txtInterviewTime.Value
      .Bookmarks("InterviewDuration").Range.Text = cboInterviewDuration.Value
      .Bookmarks("Greeting").Range.Text = strGreeting
      .Bookmarks("SenderName").Range.Text = txtSenderName.Value
      .Bookmarks("SenderPosition").Range.Text = txtSenderPosition.Value
      .Bookmarks("SenderAddress").Range.Text = strSenderAddress
   End With
   Application.ScreenUpdating = True
   Unload Me
End Sub


Código para mostrar el formulario de usuario.


El formulario debe ser visualizado de forma automática cuando el usuario abre un documento basado en la plantilla de carta.

Busque la entrada de este documento para su carta documento en el panel Explorador de proyectos del Editor de Visual Basic (si usted no puede verlo, haga doble clic en la carpeta Objetos de Microsoft Word para visualizarlo) y haga doble clic en él para abrir su ventana de código .

Utilice las listas desplegables en la parte superior de la ventana de código para crear un procedimiento Document_New. Este evento se produce cuando se crea un nuevo documento a partir de una plantilla.

Ingrese una línea de código para abrir el formulario de este modo:

Private Sub Document_New()
   frmInterviewInvitation.Show
End Sub

Compruebe el Código


El Editor de Visual Basic le han advertido sobre la mayoría de los tipos de errores tipográficos, errores gramaticales y omisiones que pueda haber cometidos al entrar su código. Como comprobación final, abra el menú Depurar de Visual Basic Editor y seleccione Proyecto de compilación. Esto debería alertar de cualquier otra cosa que pudo haber olvidado, como las variables no declaradas. Cuando esté satisfecho de que todo está bien, guardar el documento.

Características adicionales


Esta herramienta podría mejorarse aún más mediante la adición de una rutina de validación para comprobar que toda la información requerida había sido suministrado; código para proteger el documento contra la modificación adicional; la impresión automática del documento completo, etc.


Guardar el documento como una plantilla


Cuando esté satisfecho con el documento debe guardarlo como una plantilla de Word. Cuando posteriormente se utiliza una plantilla que utilice archivos de Word> Nuevo comando para abrir una copia del archivo de plantilla en lugar del propio archivo. Esto significa que el documento de plantilla original permanece sin cambios y se abrirá siempre buscando la manera que quería.

Abra el menú Archivo y seleccione Guardar como para abrir el diálogo Guardar como. En la sección Guardar como tipo seleccione Plantilla de documento continuación, introduzca un nombre adecuado para la plantilla y haga clic en Guardar.

NOTA: Al elegir una ubicación para la plantilla que debe tener en cuenta que cuando el usuario elige Archivo> Nuevo allí se llevan a la carpeta de plantillas predeterminadas. Este es un buen lugar para guardar las plantillas, ya que son fácilmente accesibles desde aquí. Puede almacenar las plantillas en cualquier lugar, pero se debe recordar que ellos deben abrirse siempre para su uso mediante el comando Archivo> Nuevo. Sólo utilice el comando Archivo> Abrir si desea abrir el archivo de plantilla propia para la edición. También puede abrir una plantilla para su uso mediante la localización de su archivo con el Explorador de Windows y el icono haciendo doble clic en el archivo de.

Recuerde probar su plantilla a fondo y corregir cualquier error antes de desatar en cualquier otro usuario.

viernes, 1 de abril de 2016

Parte 2: Creación del formulario de usuario

Introducción

Este proyecto hará uso de un cuadro de diálogo hecho a la medida para recoger información del usuario. Dicho cuadro de diálogo personalizado, llamado formulario de usuario, se crea y funciona con VBA. En esta segunda parte del tutorial crearemos un formulario de usuario para recopilar toda la información necesaria para completar el documento creado en la primera parte del tutorial.

En el documento, el formulario de usuario y su correspondiente código VBA están contenidos dentro del mismo archivo. El trabajo de construcción y codificación del formulario de usuario se realiza a través del Editor de Visual Basic de Word.

El Editor de Visual Basic

Para este paso se necesita el documento abierto en Word, aunque el trabajo de construir el formulario de usuario se llevará a cabo en el Editor de Visual Basic. Abra el Editor de Visual Basic, vaya a Herramientas> Macro> Editor de Visual Basic o utilice la combinación de teclas Alt + F11. A menos que haya realizado previamente cambios aquí, el Editor de Visual Basic abre con una ventana de código vacío, con el Explorador de proyectos y Propiedades paneles muestran a la izquierda de la ventana principal. Si no se muestran, se puede cambiar los iconos del Explorador de proyectos y Propiedades en el menú Ver.

El panel Explorador de proyectos se utiliza para navegar a través de los diversos objetos que se va a trabajar. Funciona un poco como Windows Explorer con elementos agrupados en una jerarquía de carpetas. Aquí se puede ver una referencia a los documentos abiertos actualmente: la plantilla normal (que se abre y se oculta cuando Word abre) y la letra que está trabajando. En este ejemplo, a la carta se ha dado el nombre de archivo InterviewLetter.doc. Cualesquiera otros documentos abiertos serán enumerados aquí también.


En el panel Explorador de proyectos, haga clic en el nombre de su carta documento para seleccionarlo e ir a Insertar> formulario de usuario. Esto abre un formulario de usuario en blanco en la ventana de código, y una entrada para el formulario de usuario en el panel Explorador de proyectos, y muestra la caja de herramientas ...


Que va a utilizar el formulario de usuario en blanco para construir un cuadro de diálogo personalizado para ayudar a su usuario complete la letra automáticamente. La caja de herramientas contiene todos los objetos que pueda necesitar para poner en su forma. Si no aparece o bien haga clic en el botón Cuadro de herramientas en la barra de herramientas del Editor de Visual Basic o ir a Ver> Caja de herramientas.

Nombre y Subtítulo el formulario de usuario

En el Explorador de proyectos, haga clic en UserForm1 para seleccionarlo y luego pasar a la ventana Propiedades de abajo. La ventana Propiedades muestra una lista de las propiedades del objeto seleccionado en ese momento, en este caso el propio formulario de usuario.

Cambie la propiedad Name a algo más significativo (nombres de objeto no debe contener espacios y es costumbre para prefijar nombres de formulario con el código de FRM). En este ejemplo se utiliza el nombre de la invitación Entrevista frm.

Cambie la propiedad Caption a lo que le gustaría ver en la barra de título del formulario (la banda de color en la parte superior de cada cuadro de diálogo y ventanas). Esto es lo que el usuario verá en el cuadro de diálogo para elegir algo adecuado. En este ejemplo se utiliza el título a la invitación entrevista.


El siguiente paso es añadir objetos, llamados controles al formulario. Los controles pueden adoptar la forma de un cuadro de texto (se utiliza para introducir texto libre), un cuadro combinado (que ofrece al usuario una lista desplegable de opciones, un grupo de opciones (donde el usuario puede hacer una elección haciendo clic en botones de radio), un CheckBox (donde el usuario coloca una marca de verificación para seleccionar un elemento) o un botón de comando (que el usuario hace clic para dar una instrucción).

Hay varios otros controles en la caja de herramientas Editor de Visual Basic y más se pueden añadir (tal como un Calendario) en forma de controles ActiveX.

Adición de un cuadro de texto


Si usted requiere solamente la introducción de texto por parte del usuario, un control de cuadro de texto será suficiente. Haga clic en la herramienta Cuadro de texto en la caja de herramientas y haga clic en alguna parte en el formulario de usuario. Un control de cuadro de texto seleccionado aparece en el formulario de usuario.

Se puede mover el control arrastrando uno de sus bordes, o cambiar su tamaño arrastrando uno de los rectángulos blancos alrededor de su borde. Cambiar el tamaño del cuadro de texto y arrastrarlo a una posición adecuada en el formulario de usuario, dejando suficiente espacio para una etiqueta si va a agregar uno.


Mover la etiqueta a su posición correcta y anular la selección para que pueda ver cómo se ve. Puede comprobar su aspecto final presionando F5 para previsualizar el formulario.

La adición de una etiqueta


La mayoría de los controles necesitan una etiqueta. Haga clic en la herramienta de etiqueta en la caja de herramientas y haga clic en el formulario de usuario para crear una etiqueta. El nombre de la etiqueta no es realmente importante en este caso, pero su contenido es. Puede añadir contenido a una etiqueta, ya sea haciendo clic dentro de la etiqueta y escribir directamente en ella, o cambiando la propiedad Caption de la etiqueta en el panel Propiedades.

Las variaciones de cuadro de texto

Por defecto, un cuadro de texto permite sólo una línea de texto. Esto está bien para la mayoría de los casos (como el nombre del destinatario) pero a veces desea que el usuario pueda introducir varias líneas, como será el caso con el cuadro de texto Dirección del destinatario. El control se extrae de la misma manera pero esta vez establecer la propiedad Multiline a True. Normalmente usted también desee proporcionar una barra de desplazamiento por lo establezca la propiedad ScrollBars a 2-fm barras de desplazamiento vertical.

Al introducir datos en este tipo de cuadro de texto el usuario debe pulsar Ctrl + Enter o Shift + Enter para crear una nueva línea. Otra opción es la de establecer la propiedad EnterKeyBehavior del cuadro de texto en True. Al hacer esto, el usuario puede crear una nueva línea en el cuadro de texto con sólo pulsar la tecla Intro.

NOTA: Usted puede ofrecer consejos para los usuarios, haciendo uso de la propiedad ControlTipText de un control. Introduzca un mensaje corto que le gustaría aparecer como una nota de la herramienta cuando el usuario coloca el ratón sobre el control ...

Las opciones de un cuadro combinado.


Un cuadro combinado proporciona una forma sencilla de ofrecer una lista desplegable de entradas relacionadas a partir del cual el usuario puede hacer una elección. Dibuje un cuadro combinado de la misma manera como lo haría un cuadro de texto, usando la herramienta ComboBox.

Cuando se utiliza un cuadro combinado se puede elegir si se permite o no al usuario realizar cualquier entrada, utilizando el control como un cuadro de texto, o para limitar sus entradas a los de su lista. Si desea limitar al usuario a la lista que debe establecer la propiedad MatchRequired del cuadro combinado en True.


Utilice la propiedad Name para dar a su cuadro combinado de un nombre significativo. Se acostumbra a utilizar el prefijo CBO al nombrar los cuadros combinados. Éste se llama cboInterviewLocation.

NOTA: La mayoría de los controles tienen muchas opciones diferentes de propiedades disponibles. Las propiedades más usadas se establecen como valores por defecto. Para obtener más información sobre cualquier propiedad, haga clic en la propiedad en el panel Propiedades y pulse la tecla F1.
La tarea de crear la lista en sí se lleva a cabo mediante un procedimiento de código cuando se abre el formulario. Que será tratado más adelante.

Ofrecer opciones con un grupo de opciones

Los cuadros combinados pueden ofrecer una larga lista de opciones, pero cuando se quiere ofrecer al usuario a sólo unas pocas opciones a veces un grupo de opciones es más apropiado. Un grupo de opciones es una colección de botones de opción (a veces llamados botones de opción) colocados dentro de un marco (en botones de opción de hecho en un UserForm de VBA no tienen que ser colocado dentro de un marco para trabajar como un grupo, sino que ayuda al usuario a comprender que trabajan juntos).

Cuando la construcción de un grupo de opciones que puede elegir si desea utilizar los botones de opción, casillas de verificación o botones de alternancia todos los cuales funcionan de la misma manera. Más comúnmente se utilizan los botones de opción. Cuando se trabaja en grupo, el usuario sólo puede seleccionar una opción. Si se selecciona otra la elección anterior se anula la selección.


 Tools for building an Option Group

En este ejemplo, un grupo de opciones se utiliza para ofrecer al usuario una selección de saludos con el que poner fin a la carta.

En primer lugar, elaborar un marco en el formulario de usuario. No se preocupe demasiado por su tamaño exacto y la forma - que se puede ajustar más tarde. Utilice su propiedad Caption para agregar una etiqueta a la parte superior del marco.

An empty frame with its caption

Ahora usa la herramienta OptionButton para sacar el número requerido de botones de opción dentro del cuadro, llenando la etiqueta descriptiva de cada uno mediante la introducción de texto en la propiedad Caption o escribiendo directamente en la etiqueta.

Utilice la propiedad Name para dar a cada botón de opción un nombre significativo. En mi ejemplo he llamado a ellos optGreeting1 optGreeting4. Si ha optado por situar sus botones de opción dentro de un marco que se comportarán de forma automática juntos como un grupo. Si prefiere no utilizar un marco - o el deseo de tener más de un grupo de botones - hacer uso de la propiedad GroupName de cada botón de opción. Los controles con el mismo NombreGrupo trabajarán juntos como un grupo, incluso si no están encerrados dentro de un marco.

The completed Option Group

Añadir los botones de comando


Por último, la forma necesita algunos botones para iniciar las diversas tareas de la forma tiene que realizar. En primer lugar, un botón de OK que dará lugar a que los datos sean transferidos a la carta estándar; un botón Cancelar para cerrar el formulario y cerrar la carta si el usuario cambia de opinión; y (opcionalmente) un botón Borrar formulario para restablecer el formulario a sus valores originales si el usuario quiere empezar de nuevo.

The Command Button Tool

En VBA estos son conocidos como botones de comando. Al igual que los otros controles que se pueden dibujar en el formulario utilizando la herramienta caja de herramientas para botones de comando.

Utilice el panel Propiedades para dar los botones nombres significativos y leyendas. La convención es un prefijo de nombre de un botón de comando con cmd.

Tres propiedades adicionales son útiles al crear botones de comando:

La propiedad del acelerador le permite especificar una carta que el usuario puede escribir como una alternativa a hacer clic en el botón. Esta carta debe ser uno de los incluidos en el título del botón. Esa carta aparece a continuación, subrayada en el título. Para asignar un acelerador a un tipo diferente de control, como un cuadro combinado o cuadro de texto, establezca la propiedad del acelerador de su etiqueta.

La propiedad por defecto, si se define como true, hace que el botón que se hizo clic sobre si el usuario presiona la tecla Enter en su teclado. Esta propiedad sólo debe establecerse en uno de los botones, y normalmente se aplica al botón OK. Mientras que generalmente es útil, es posible que desee omitir esta característica si usted piensa que el usuario es probable que presione Enter antes de que hayan completado el formulario, ya que podría dar lugar a la forma de cerrar prematuramente. El botón "default" también permanece resaltado para indicar su propósito a menos que las lengüetas de usuario a un botón diferente.

La propiedad Cancel, si se establece en True, tiene el efecto de 'clic' en el botón al que se aplica cuando el usuario presiona la tecla (o Esc) en su teclado Escape. Esta característica podría ser útil aplicar al botón Cancelar.

Command buttons showing their accelerator letters

Esto completa el diseño del formulario. Antes de seguir comprobar aún más su apariencia para el usuario mediante la selección de la forma y presionando la tecla F5. Es posible que desee modificar el diseño y las dimensiones de la forma antes de añadir el código VBA (aunque el diseño de la forma puede ser modificada en cualquier momento).

NOTA: Cuando la organización de controles en un formulario, puede mover varios controles a la vez, manteniendo sus posiciones relativas, mediante la realización de una selección múltiple. La forma más sencilla de hacerlo es utilizar el ratón para dibujar un rectángulo de selección que encierra los controles que desea seleccionar. Al soltar el ratón todos los controles cerrados se seleccionan y se pueden mover como una sola.


Establecer el orden de tabulación


Un último paso, pero importante en la creación de la forma es comprobar el orden de tabulación. Este es el orden en que serán visitados los diversos controles cuando un usuario se mueve alrededor del formulario presionando la tecla Tab. Una orden ilógico puede ser muy frustrante para el usuario. Ir a Ver> Orden de tabulación para que aparezca un cuadro de diálogo con todos los controles en el formulario en su orden actual. Utilizar los botones para cambiar el orden si es necesario. Puede pasar por alto los controles de etiqueta, ya que, a pesar de que se enumeran aquí, serán ignoradas por el orden de tabulación.

El formulario completo se muestra a continuación:

The completed UserForm


Parte 1 Uso de un formulario personalizado para capturar datos y pasarlos a una plantilla

Parte 1: Preparación del Documento


Introducción:


La mayoría de las empresas utilizan formularios de cartas o documentos estándar, en la que algunos detalles necesitan ser cambiado cada vez que se creó el documento. La mejor manera de lidiar con esto es guardar el documento como una plantilla. Puede agregar campos de formulario para el contenido de la variable para hacer el trabajo de completar el documento sea más fácil. Sin embargo, para el mayor control y facilidad de uso, se puede mejorar la versatilidad xcon el uso de un UserForm de VBA. Un UserForm de VBA es un cuadro de diálogo personalizado, al que se pueden añadir todas las características que normalmente se ve en un cuadro de diálogo estándar de Windows, como cuadros de texto, cuadros combinados, grupos de opciones, casillas de verificación y mucho más.

Este tutorial en tres partes te muestra cómo construir una plantilla de documentos automático para Microsoft Word. La plantilla utiliza VBA para mostrar un cuadro de diálogo en el que el usuario introduce la información necesaria. Con el clic de un botón, la información se transfiere al documento y queda listo para imprimir.

La primera parte del tutorial es la preparación del documento estándar. En la segunda parte diseñamos y construimos un UserForm de VBA, y en la tercera parte se escribe el código VBA que alimenta el formulario.

Preparación del Documento Estándar


Su proyecto podría ser un documento estándar, como un contrato de arrendamiento o contrato, o una carta modelo como una oferta de trabajo o invitación entrevista. En este tutorial utilizo el ejemplo de una invitación entrevista.

La primera tarea es decidir qué partes del documento cambian cada vez, y los que siguen siendo los mismos. Si el documento es una carta, por ejemplo, escribir como si estuviera dirigiendo directamente a un individuo, pero, en lugar de introducir cualquier información personal, inserte un marcador.

Por ejemplo, en lugar de escribir "Estimado Sr. Green" se debe escribir "Estimado" y luego crear un marcador para definir el lugar donde se insertará el saludo "Sr. Green" en el formulario de usuario. Antes de insertar sus marcadores le puede resultar útil para ir a Herramientas> Opciones> Ver y marque la opción Favoritos. Esto asegura que se puede ver la posición de un marcador después de haberlo insertado.



Inserte los Marcadores


Para insertar un marcador coloque el cursor donde desea que el texto insertado que aparezca e ir a Insertar> Marcador. Esto muestra el cuadro de diálogo Marcadores. Escriba un nombre para el marcador y haga clic en Agregar. Cada marcador de un documento debe tener un nombre único, y tiene sentido mantener los nombres relevante y concisa.

Naming and inserting a bookmark


Si ha optado por ver los marcadores, como se sugirió anteriormente, verá un marcador de color gris que denota la posición del marcador. Si no es así, el marcador será invisible. Esta función se puede activar y desactivar en cualquier momento y no afecta el rendimiento del marcador. Usted puede preferir que los marcadores visibles mientras se está creando la plantilla, pero ocultarlos cuando está utilizando el documento.

No es necesario dejar ningún espacio adicional para el texto que se inserta en el marcador ya que esto sucederá de forma automática. Si el texto insertado aparecerá en el medio de una frase, entonces su marcador debe tener un espacio (u otro puntuacion adecuada) a cada lado. Si es en el final de una frase que debe ser seguida inmediatamente por el punto
.
A medida que agrega marcadores a un documento que se enumeran en el cuadro de diálogo Marcadores. Este cuadro de diálogo también le da la posibilidad de eliminar marcadores de su documento, o para ir rápidamente a una posición de marcador ...

Word builds a list of the bookmarks in the document

Los marcadores se pueden insertar a medida que escribe o puede preferir que escriba primero un documento de muestra, y luego editarlo para eliminar el texto personalizado reemplazando cada pieza con un marcador.

Al diseñar a cabo su documento recuerda que, si bien el marcador ocupa sólo un pequeño espacio, el texto insertado probablemente requerirá más. Esto podría afectar la distribución del documento a fin de tomar esto en consideración si el diseño es particularmente importante. Así es como se ve el documento de muestra después de que todos los marcadores se han insertado ...


Hacer uso de los campos de Word


Varios tipos de información de actualización automática se pueden agregar a su documento con la ayuda de campos de Word. Se puede ver que la carta contiene una fecha. No escriba una fecha! Si lo hace, tendrá que ser cambiado cada vez que use la plantilla. En su lugar insertar la fecha como un campo Palabra. Coloca el cursor donde desee que aparezca la fecha y vaya a Insertar> Fecha y hora y elija el formato que desee. Asegúrese de que la opción Actualizar automáticamente está seleccionada y haga clic en OK para colocar el campo en el documento. Este campo mostrará entonces la fecha actual cada vez que se abre el documento (es decir, cada vez que se crea un nuevo documento utilizando la nueva plantilla).

Guardar el documento


Ahora es un buen momento para guardar el documento. Puede guardarlo como un documento normal de Word (* .doc) y guardarlo como una plantilla más tarde, cuando todo el trabajo está terminado