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


No hay comentarios.:

Publicar un comentario