Visual Basic Para Aplicaciones Excel

VISUAL BASIC PARA APLICACIONES EXCEL De Wiki Soludevt Saltar a navegación, buscar Contenido [ocultar]  1 Introducción

Views 523 Downloads 14 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

VISUAL BASIC PARA APLICACIONES EXCEL De Wiki Soludevt Saltar a navegación, buscar

Contenido [ocultar] 

1 Introducción



2 = Instrucciones de Asignación =



3 Instrucciones Ejecutables o 3.1 Banco de Preguntas 

3.1.1 Pregunta 1



3.1.2 Pregunta 2



3.1.3 Pregunta 3



3.1.4 Pregunta 4



3.1.5 Pregunta 5



3.1.6 Pregunta 6



3.1.7 Pregunta 7



3.1.8 Pregunta 8



3.1.9 Pregunta 9



3.1.10 Pregunta 10



3.1.11 Pregunta 11



3.1.12 Pregunta 13



3.1.13 Pregunta 14



3.1.14 Pregunta 15



3.1.15 Pregunta 16



3.1.16 Pregunta 17



3.1.17 Pregunta 18



3.1.18 Pregunta 19



3.1.19 Pregunta 20



3.1.20 Pregunta 21



3.1.21 Pregunta 22



3.1.22 Pregunta 23

o 3.2 Un objeto 

4 Elementos de un programa de Visual Basic o 4.1 Los Elementos básicos de programación son los que se mencionan a continuacion: 

4.1.1 Sentencias de Control 

4.1.1.1 Estructura Secuencial



4.1.1.2 Estructuras Selectivas 

4.1.1.2.1 Selectiva Simple (If Then / End If)



4.1.1.2.2 Selectiva Doble (If Then / Else / End If)



4.1.1.2.3 Selectiva Múltiple (Select Case / Case else / End Select)



4.1.1.3 Estructuras Repetitivas



4.1.2 Procedimientos



4.1.3 Variables





4.1.3.1 Tipos de Datos de las Variables



4.1.3.2 Declarar Variables



4.1.3.3 Opction Explicit:



4.1.3.4 Declarar una Variable de objeto para Automatización



4.1.3.5 Comprender la Vida de las Variables

4.1.4 Constantes

o 4.2 Matrices o 4.3 Operadores o 4.4 Banco de Preguntas 

4.4.1 Pregunta 1



4.4.2 Pregunta 2



4.4.3 Pregunta 3



4.4.4 Pregunta 4



5 Procedimientos y Funciones



6 Procedimientos o 6.1 Escribir un Procedimiento Sub o 6.2 Función



7 Estructuras de Control de Flujo

o 7.1 Crear Bucles mediante Código o 7.2 Banco de Preguntas o 7.3 Instrucciones IF...THEN...ELSE o 7.4 Banco de Preguntas 

7.4.1 Pregunta 1



7.4.2 Pregunta 2



7.4.3 Pregunta 3



7.4.4 Pregunta 4



7.4.5 Pregunta 5



7.4.6 Pregunta 6



7.4.7 Pregunta 7



7.4.8 Pregunta 8



7.4.9 Pregunta 9



7.4.10 Pregunta 10



7.4.11 Pregunta 11



7.4.12 Pregunta 12



7.4.13 Pregunta 13



7.4.14 Pregunta 14



7.4.15 Pregunta 15



7.4.16 Pregunta 16



7.4.17 Pregunta 17



7.4.18 Pregunta 18



7.4.19 Pregunta 19



7.4.20 Pregunta 21

o 7.5 Instrucciones SELECT CASE o 7.6 Banco de Preguntas 

7.6.1 Pregunta 1



7.6.2 Pregunta 2



7.6.3 Pregunta 3



7.6.4 Pregunta 4



7.6.5 Pregunta 5



7.6.6 Pregunta 6



7.6.7 Pregunta 7



7.6.8 Pregunta 8



7.6.9 Pregunta 9



7.6.10 Pregunta 10



7.6.11 Pregunta 11



7.6.12 Pregunta 12



7.6.13 Pregunta 13



7.6.14 Pregunta 14



7.6.15 Pregunta 15



7.6.16 Pregunta 16



7.6.17 Pregunta 17



7.6.18 Pregunta 18



7.6.19 Pregunta 19



7.6.20 Pregunta 20



7.6.21 Pregunta 21

o 7.7 Instrucciones DO LOOP o 7.8 Banco de Preguntas 

7.8.1 Pregunta 1



7.8.2 Pregunta 2



7.8.3 Pregunta 3



7.8.4 Pregunta 4



7.8.5 Pregunta 5



7.8.6 Pregunta 6



7.8.7 Pregunta 7



7.8.8 Pregunta 8



7.8.9 Pregunta 9



7.8.10 Pregunta 10



7.8.11 Pregunta 11



7.8.12 Pregunta 12



7.8.13 Pregunta 13



7.8.14 Pregunta 14



7.8.15 Pregunta 15



7.8.16 Pregunta 16



7.8.17 Pregunta 17



7.8.18 Pregunta 18

o 7.9 Instrucciones FOR……NEXT o 7.10 Banco de Preguntas o 7.11 Pregunta 1 

7.11.1 Pregunta 2



7.11.2 Pregunta 3



7.11.3 Pregunta 4



7.11.4 Pregunta 5



7.11.5 Pregunta 6



7.11.6 Pregunta 7



7.11.7 Pregunta 8



7.11.8 Pregunta 9



7.11.9 Pregunta 10



7.11.10 Pregunta 11



7.11.11 Pregunta 12



7.11.12 Pregunta 13



7.11.13 Pregunta 14



7.11.14 Pregunta 15



7.11.15 Pregunta 16



7.11.16 Pregunta 17



7.11.17 Pregunta 18



7.11.18 Pregunta 19



7.11.19 Pregunta 20

o 7.12 Banco de Preguntas





7.12.1 Pregunta 1



7.12.2 Pregunta 2



7.12.3 Pregunta 3



7.12.4 Pregunta 4



7.12.5 Pregunta 20

8 Objetos, Propiedades, Métodos y Procedimientos de Evento o 8.1 Comprender Objetos, Propiedades, Métodos y Eventos o 8.2 Procedimientos o 8.3 Banco de Preguntas 

8.3.1 Pregunta 1



8.3.2 Pregunta 2



8.3.3 Pregunta 3



8.3.4 Pregunta 5



8.3.5 Pregunta 6



8.3.6 Pregunta 7





8.3.7 Pregunta 8



8.3.8 Pregunta 9



8.3.9 Pregunta 10



8.3.10 Pregunta 11



8.3.11 Pregunta 12



8.3.12 Pregunta 13



8.3.13 Pregunta 14



8.3.14 Pregunta 15



8.3.15 Pregunta 16



8.3.16 Pregunta 17



8.3.17 Pregunta 18



8.3.18 Pregunta 19



8.3.19 Pregunta 20

9 Colecciones de Objetos en Excel o 9.1 El examinador de objetos o 9.2 Uso de la ventana Locales o 9.3 Uso de la ventana Inmediato o 9.4 Controlar una aplicación de Microsoft Office desde otra o 9.5 Objeto Application y Windows o 9.6 Objetos WorkBooks 

9.6.1 ThisWorkBook



9.6.2 Sheets



9.6.3 WorkSheets



9.6.4 Charts



9.6.5 Shapes



9.6.6 Banco de Preguntas 

9.6.6.1 Pregunta 1

o 9.7 Objetos ActiveCell 

9.7.1 ActiveSheet



9.7.2 ActiveWorkBook



9.7.3 ActiveChart



9.7.4 Banco de Preguntas 

9.7.4.1 Pregunta 1



9.7.4.2 Pregunta 2



9.7.4.3 Pregunta 3



9.7.4.4 Pregunta 4



9.7.4.5 Pregunta 5



9.7.4.6 Pregunta 6



9.7.4.7 Pregunta 7



9.7.4.8 Pregunta 8



9.7.4.9 Pregunta 9



9.7.4.10 Pregunta 10





9.7.4.11 Pregunta 11



9.7.4.12 Pregunta 12



9.7.4.13 Pregunta 13

9.7.5 = Pregunta 13 

9.7.5.1 Pregunta 14



9.7.5.2 Pregunta 15

o 9.8 Objetos Range 

9.8.1 Cells



9.8.2 Columns



9.8.3 Propiedad Columns



9.8.4 Rows



9.8.5 IMPRIMIR CELDAS



9.8.6 Selection Name



9.8.7 FUNCIONES



9.8.8 Banco de Preguntas 

9.8.8.1 Pregunta 1



9.8.8.2 Pregunta 2



9.8.8.3 Pregunta 3



9.8.8.4 Pregunta 4



9.8.8.5 Pregunta 5



9.8.8.6 Pregunta 6

o 9.9 UserForms o 9.10 Columns o 9.11 MACROS o 9.12 BUSCAR UNA CADENA DE TEXTO EN OTRA MAS LARGA o 9.13 control listbox 

10 Bibliografía

Introducción Microsoft Excel es un programa del computador mediante hojas electrónicas agrupadas en libros los que ayudan a realizar cálculos de cualquier fondo especialmente numérico.a más de esto podemos decir que Visual Basic es un diseñador de entorno de Datos. Además constituye una herramienta muy eficaz y necesaria para varias enseñanzas numéricas. Entre muchas otras aplicaciones, es utilizado en el tratamiento estadístico de datos, también permitiendo hacer presentación gráfica de los datos o números almacenados. Hojas Electronicas Es un programa que permite insertar datos numéricos y alfanuméricos dispuestos en forma de tablas. Habitualmente es posible realizar cálculos complejos con fórmulas y funciones y dibujar distintos tipos de gráficas. Esta hoja electronica esta compuesta por filas y columnas. Las hojas de cálculo, se utilizan para hacer pequeñas bases de datos, informes, gráficos estadísticos, clasificaciones de datos, entre otros usos. Las operaciones más frecuentes se basan en cálculos entre celdas, las cuales son referenciadas respectivamente mediante la letra de la columna y el número de la fila, por ejemplo =B1*C1. Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar la funcionalidad de programas de Microsoft Office. Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic 5.0 y 6.0. Microsoft VBA viene integrado en aplicaciones de Microsoft Office, como Word, Excel y Access, Powerpoint y Visio. Prácticamente cualquier cosa que se pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office, con la sola limitación que el producto final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado; es decir, se convierte en una macro (o más bien

súper macro). Esta macro puede instalarse o distribuirse con sólo copiar el documento, presentación o base de datos. Su utilidad principal es automatizar tareas cotidianas, así como crear aplicaciones y servicios de bases de datos para el escritorio. Permite acceder a las funcionalidades de un lenguaje orientado a eventos con acceso a la API de Windows. Características de Visual Basic. Elementos de visual basic para aplicaciones: El Explorador de proyectos es una herramienta de exploración y gestión que muestra una lista jerárquica de cada proyecto abierto. También muestra cada una de las componentes asociadas con los proyectos, como los documentos de Word, formularios, módulos de clase y referencias. En palabras sencillas hay que dejarlo tal como está. A medida que agreguemos objetos a nuestro progranma irán apareciendo en el explorador y nos servirá para movernos de un componente a otro. Ventana de propiedades: La ventana de Propiedades muestra las propiedades para el objeto activo (Formulario de usuario o control). Ofrece una manera visual de configurar y modificar propiedades. En la ventana de propiedades , las propiedades se pueden listar alfabéticamente o por categorías. En palabras sencillas, cuando agregamos un objeto este tiene varias "propiedades" como su color, tamaño, tipo de letra, etc. En esta ventana podemos cambiar las propiedades del objeto "activo" (iluminado) en ese momento. 'Barra de herramientas:' Es donde aparecen los botones para las funciones mas usadas, esta justo abajo de la Barra de menús que tiene los menús con todas las opciones del Visual BAsic Area de trabajo. Es donde colocamos nuestros objetos (Formularios o controles) y les agregamos código Como se hacen los programas en Visual Basic: Los programas en Visual Basic se hacen en dos etapas a) Se dibujan las pantallas b) Se coloca código a los objetos Así de simple, con esto tenemos toda la teoría necesaria para programar en VB, parece chiste pero es en serio. Visual Basic.- es un lenguaje de programación de los llamados "visuales", puesto que parte de la programación que se realiza con él se basa en la utilización de elementos visuales. La palabra "Visual" hace referencia al método que se utiliza para crear la interfaz gráfica de usuario. En lugar de escribir numerosas líneas de código para describir la apariencia y la ubicación de los elementos de la interfaz, simplemente podemos agregar objetos prefabricados en su lugar dentro de la pantalla, que ahorran mucho tiempo de programación y que sobrepasan el concepto de la programación convencional en cuanto a la estructura secuencial del programa. Profundizaremos en estos conceptos a medida que avancemos en el desarrollo del curso. Nos permite la creación de componentes y trabajar con objetos, otros lenguajes tienen más potencia en la programación orientada a objetos, pero a medida que han avanzado en las versiones de Visual Basic, ha aumentado su versatilidad.

Microsoft VBA viene integrado en aplicaciones de Microsoft Office, tales como , como Word, Excel y Access, Powerpoint y Visio. Prácticamente cualquier cosa que se pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office, con la sola limitación que el producto final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado; es decir, se convierte en una macro (o más bien súper macro). Esta macro puede instalarse o distribuirse con sólo copiar el documento, presentación o base de datos. Su utilidad principal es automatizar tareas cotidianas, así como crear aplicaciones y servicios de bases de datos para el escritorio. Permite acceder a las funcionalidades de un lenguaje orientado a eventos con acceso a la API de Windows. Este lenguaje ha sido implementado en otros productos como StarBasic en StarOffice que después heredaría OpenOffice. Entre los diferentes campos que posee Microsoft Excel se puede mencionar algunas de las actividades que se puede realizar en la misma, como programación con macros en VBA (Visual Basic) el cual puede existir en algunas versiones con varios términos en ingles. Es un lenguaje orientado a eventos en aplicaciones tradicionales o "por procedimientos", la aplicación es la que controla qué partes de código y en qué secuencia se ejecutan.

_________________________________________________________________________ __________________ VISUAL BASIC Visual Basic es un ambiente gráfico de desarrollo de aplicaciones para el sistema operativo Microsoft Windows. Las aplicaciones creadas con Visual Basic están basadas en objetos y son manejadas por eventos. Visual Basic se deriva del lenguaje Basic, el cual es un lenguaje de programación estructurado. Sin embargo, Visual Basic emplea un modelo de programación manejada por eventos. LENGUAJES DE PROGRAMACION Es un idioma artificial (crea conocimiento)el cual es entendible para el computador y se los utiliza para crear programas que controlen el comportamiento físico y lógico de una máquina. Este lenguaje está formado por un conjunto de símbolos y reglas sintácticas y semánticas predefinidas y su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático a esto se lo llama programación. Visual Basic consiste en un editor de código (programa donde se escribe el código fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser bien compilado), un compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código para la parte gráfica del programa, sino que se puede hacer de forma visual).

CARACTERISTICAS DE VISUAL BASIC

EDICIONES DE VISUAL BASIC Visual Basic se encuentra disponible en tres versiones, cada una de las cuales está orientada a unos requisitos de programación específicos. • La Edición de Aprendizaje de Visual Basic permite a los programadores crear robustas aplicaciones para Microsoft Windows y Windows NT®. Incluye todos los controles intrínsecos, además de los controles de cuadrícula, de fichas y los controles enlazados a datos. La documentación proporcionada con esta edición incluye el CD "Aprenda VisualBasic ya" junto con el de la biblioteca de Microsoft Developer Network (MSDNT) que contienen documentación completa en pantalla. • La Edición Profesional proporciona a los profesionales un conjunto completo de herramientas para desarrollar soluciones para terceros. Incluye todas las características de la Edición de Aprendizaje, así como controles ActiveX adicionales, el diseñador de aplicaciones para Internet Information Server y Visual Database Tools and Data. La documentación que se proporciona con la Edición Profesional incluye el libro Características empresariales de Visual Studio más los CD de Microsoft Developer Network que contienen documentación completa en pantalla. • La Edición Empresarial permite a los profesionales crear sólidas aplicaciones distribuidas en un entorno de equipo. Incluye todas las características de la Edición Profesional, así como herramientas de Back Office como SQL Server, Microsoft Transaction Server, Internet Information Server, Visual SourceSafe, SNA Server, etc. La documentación impresa que se proporciona con la Edición Empresarial incluye el libro Características empresariales de Visual Studio más los CD de Microsoft Developer Network que contienen documentación completa en pantalla. Como se define Visual Basic Visual Basic es una técnica de programación, conocida como programación por sucesos o eventos, que es una mezcla de la programación estructurada y de programación orientada a objetos, con el uso de la interfaz gráfica de usuario. De esta manera el programador trabaja desde el primer momento en un ambiente orientado a objetos. Que se puede hacer en Visual Basic - Con Visual Basic se pueden crear aplicaciones con las caracteristicas de los programas de Windows, esto es con ventanas, botones, cajas de diálogo y de texto, botones de opcion y de selección, barras de desplazamiento, gráficos, menús, etc. - Con Visual Basic se pueden crear programas para uso personal, para un grupo de trabajo, para una empresa, aplicaciones distribuidas a través de aplicaciones de bases de datos y muchas otras mas de acuerdo a su ingenio e imaginación.

- Con Visual Basic se pueden crear aplicaciones gráficas con sonido, animación, video y otros componenetes de multimedia. Entorno de desarrollo de visual basic Su entorno de desarrollo es muy similar al de otros lenguajes e IDE's. • Se compone principalmente de su barra de herramientas y menús que se pueden personalizar con prácticamente la completa totalidad de los comandos del IDE a necesidad. • El espacio de trabajo donde se muestran todas las ventanas del proyecto, las vistas de código de módulos y objetos, y lalos controles con los que componen las ventanas de nuestra aplicación. Por defecto disponemos los controles básicos: o (PictureBox) Caja de Imagen o (Label) Etiqueta o (TextBox) Caja de texto o (Frame) Marco o (CommandButton) Botón de comando o (CheckBox) Casilla de verificación: Los botones de opciones son mutuamente excluyentes, solo permiten que solo una opción seá seleccionada. Suponiendo que deseamos presentar al usuario varias opciones de las cuales puede escoger varias. En este caso el uso de cajas de verificación es más adecuado. Crea una aplicación como la mostrada abajo. El usuario podra escoger el item que necesite dando clic en la caja de verificación. Los iconos serán mostrados al seleccionar un item. o (OptionButton) Botón de opción o (ComboBox) Lista desplegable o (ListBox) Lista o (HScrollBar) Barra de desplazamiento horizontal o (VScrollBar) Barra de desplazamiento vertical o (Timer) Temporizador o (DriveListBox) Lista de unidades de disco

o (DirListBox) Lista de directorios o (FileListBox) Lista de archivos o (Shape) Figura o (Line) Línea o (Image) Imagen o (Data) Conexión a origen de datos o (OLE) Contenedor de documentos embebidos compatibles con Object Linking and Embedding Se pueden agregar todo tipo de controles de terceros, una gran cantidad de ellos de serie con la instalación de Visual Basic que vienen embebidos dentro de archivos de extensión *.OCX. • El panel lateral derecho contiene dos vistas principales: o El Explorador de Proyectos, que muestra todos los elementos que componen nuestro proyecto o grupos de proyectos (formularios, interfaz de controles, módulos de código, módulos de clase, etc...) o El Panel de propiedades, donde se muestran todos los atributos de los controles de nuestros formularios o la información de modulos clase y formularios entre otros muchos. • La Ventana de inmediato (por defecto en la parte inferior aunque puede no estar visible. Utilizar Ctrl+G mostrar la ventana). Esta ventana resulta una herramienta muy útil a la hora de depurar código o incluso de hacer pruebas rápidas ya que permite imprimir mensajes de texto desde nuestro código y ejecutar sentencias simples de código (solo sentencias que se puedan representar en una sola línea, no permite bloques) que puede ser desde código de nuestra propia aplicación, por ejemplo consultar el valor de una variable o llamar a un método declarado en el módulo que se està depurando, así como ejecutar código al vuelo, esto viene a ser por ejemplo probar cosas como: ?2+2 Al ejecutarlo devolvería el resultado de la operación, pudiendo usar variables del código de la aplicación, o sentencias de código como: Msgbox "Prueba de cuadro de mensaje de error.", vbCritical, "Titulo del mensaje" A la hora de depurar errores es útil para consultar el error en cuestión: ?Err.Number

VERSIONES QUE TIENE VISUAL BASIC Las versiones de Visual Basic para Windows son muy conocidas, pero existe una versión de Microsoft Visual Basic 1.0 para MS-DOS (ediciones Profesional y Estándar) menos difundida y que data de 1992. Era un entorno que, aunque en modo texto, incluía un diseñador de formularios en el que se podían arrastrar y soltar distintos controles.

La última versión sólo para 16 bits, la 3.0, no incluía una detallada biblioteca de componentes para toda clase de usos. Durante la transición de Windows 3.11 a Windows 95, apareció la versión 4.0, que podía generar programas de 16 y 32 bits a partir de un mismo código fuente, a costa de un gran aumento en el tamaño de los archivos "runtime" necesarios. Además, se sustituyen los controles VBX por los nuevos OCX. Con la versión 5.0, estuvo a punto de implementar por primera vez la posibilidad de compilar a código nativo, obteniendo una mejora de rendimiento considerable. Tanto esta como la posterior 6.0 soportaban características propias de los lenguajes orientados a objetos, aunque careciendo de algunos ítems importantes como la herencia y la sobrecarga. La versión 6.0 continua utilizándose masivamente y es casi compatible prácticamente al 100% con las últimas versiones de Windows como Vista y Windows 7. Las versiones actuales de Visual Basic se basan en la plataforma .NET, que se desligan de las anteriores versiones. Cabe mencionar que aunque menos conocido, existió también una versión gratuita de Visual Basic 5.0 dedicada en su práctica al desarrollo de controles y componentes, su nombre en concreto era Microsoft Visual Basic 5.0 Control Creation Edition (Visual Basic 5 CCE). También hubo versiones orientadas al desarrollo de aplicaciones para dispositivos móviles basados en Windows CE y Pocket PC, conocido como eMbedded Visual Basic. Tiene lo siguiente: Barra de titulo: Muestra el nombre del Proyecto y del formulario que diseñamos. Barra de Menus: agrupa los menus desplegables que contiene todas las operaciones que se llevaran a cabo. Barra de Herramientas:contiene los botones que se utiliza con mas frecuencia en la elaboración de un proyecto. Ventana de formularios:es la ventana donde diseñamos la interfaz grafica. Cuadro de Herramientas:nos presenta todos los controles necesarios para una aplicacion, como cuadros de texto, botones, entre otros. Ventana de proyecto:muestra los elememntos involucrados en el proyecto Ventana de Posición de Formularios:nos indica la posicion del formulario en pantalla. VENTAJAS EN VISUAL BASIC

• Es un lenguaje . • Posee una curva de aprendizaje muy rápida. • Integra el diseño e implementación de formularios de Windows. • Permite usar con suma facilidad la plataforma de los sistemas Windows dado que tiene acceso prácticamente total a la API de Windows incluídas librerías actuales. • El código en Visual Basic es fácilmente migrable a otros lenguajes. • Es un lenguaje muy extendido por lo que resulta fácil encontrar información, documentación y fuentes para los proyectos. • Fácilmente extensible mediante librerías DLL y componentes ActiveX de otros lenguajes. • Posibilidad de añadir soporte para ejecución de scripts, VBScript o JScript, en las aplicaciones mediante Microsoft Script Control. • Acceso a la API multimedia de DirectX (versiones 7 y 8). También está disponible, de forma no oficial, un componente para trabajar con OpenGL 1.1: VBOpenGL type library • Existe una versión integrada en las aplicaciones de Office, versiones tanto Windows como Mac, que permite programar macros para extender y automatizar funcionalidades en documentos como por ejemplo una hoja de cálculo de Excel o una base de datos Access (VBA) • Es un entorno perfecto para realizar pequeños prototipos rápidos de ideas. • Es amigo de los objetos • Permite crear anuncios. DESVENTAJAS EN VISUAL BASIC • Sin soporte oficial de Microsoft desde el 4 de abril de 2008 (aunque existe mucha documentación disponible en el sitio de MSDN incluídas descargas de Service Packs, paquetes de dependencias mínimas y similares en el sitio web de Microsoft). • No es multiplataforma (sin embargo se pueden usar emuladores e intérpretes para correrlos en otras plataformas). • Por defecto permite la programación sin declaración de variables, (que puede ser sencillamente corregida escribiendo la frase Option Explicit en el encabezado de cada módulo de código, en cuyo caso será menester declarar todas las variables a utilizar, lo que a la postre genera código más estable y seguro).

• No permite programación a bajo nivel ni incrustar secciones de código en ASM (aunque es posible ejecutar código ASM mediante pequeños hacks como este). • Sólo soporta librerías dinámicas (DLL) que usen la convención de llamadas _stdcall y componentes y librerías ActiveX. • Es un lenguaje basado en objetos pero no implementa por completo la filosofía de Orientación a Objetos (véase POO). • No permite la sobrecarga de operadores ni métodos. • No permite nombres de espacio (véase namespace). • No soporta el puntero a memoria salvo en algunas acciones concretas, como por ejemplo pasar la dirección de memoria de una función como argumento (operador AddressOf). • No soporta tratamiento de procesos como parte del lenguaje. • No incluye operadores de desplazamiento de bits como parte del lenguaje. • No permite el manejo de memoria dinámica, punteros, etc. como parte del lenguaje. • No soporta el tratamiento de excepciones. Su tratamiento de errores se basa en la captura de mensajes y desvío del flujo de ejecución de la forma tradicional del BASIC (On Error Goto ). • No controla todos los errores de conversión de tipos dado que en muchas ocasiones hace conversiones al vuelo (sobre todo al usar variables de tipo Variant). • Aunque existen opciones avanzadas en el compilador para desactivar los controladores de desbordamiento de enteros o las comprobaciones de límites en matrices entre otros (presumiblemente para optimizar y lograr algo de rendimiento) no es seguro del todo dado que hay más posibilidades de generar una excepción grave no controlada por el intérprete (y por consiguiente del programador) o un memory leak haciendo el programa altamente inestable e impredecible. • No tiene instrucciones de preprocesamiento. • El tratamiento de mensajes de Windows es básico e indirecto. • El depurador no es demasiado flexible ni cómodo en ciertas situaciones. • Los controles personalizados no mejoran la potencia de la API de Windows, y en determinados casos acudir a ésta será el único modo de conseguir el control personalizado deseado. • No soporta correctamente la programación multihilo haciendo muy inestable su ejecución inclusive desde el propio entorno de desarrollo. • Su fuerte dependencia de librerías y componentes ActiveX que requieren de privilegios de administrador para poder instalar las aplicaciones (existen opciones de terceras aplicaciones para generar ejecutables independientes que embeben las dependencias en el propio código del ejecutable, por ejemplo: Molebox o Thinstall/VMware Thinapp). • Un gran inconveniente es que no soporta codigo binario (Esto ha sido descubierto por el Matematico Griego Alsdork Vita en el año 1994). • Se bugea con facilidad y no permite ensamblar codigo libre, aunque algunos programadores han violado esta regla, y sufrieron consecuencias. (Ver Bill Gates).

• Aunque es bueno compilando, posee gran cantidad de bugs y es necesario actualizar a la version 7 con el parche Raid. Como se diseñan las aplicaciones Las aplicaciones en Visual Basic se diseñan de dos formas: en Modo de Diseño y en Modo de Ejecución. En Modo de Diseño el usuario construye interactivamente la aplicación colocando controles en el formulario definiendo sus propiedades y desarrollando funciones para gestionar eventos. La aplicación se prueba en Modo de Ejecución, para lo cual el actúa sobre el programa introduciendo eventos y prueba como responde el programa. Muchas propiedades de los controles deben establecerse en modo diseño, pero otras pueden modificarse en tiempo de ejecución desde el programa. También hay propiedades que solo se pueden establecer en modo de ejecución y que no son visibles en modo de diseño. Controles Cada uno de los elementos gráficos que pueden formar parte de aplicación típica de Windows es un tipo de control, entre estos encontrar los botones, las cajas de dialogo y de texto, las cajas de selección desplegables, los botones de opción y de selección, las barras de desplazamiento horizontales y verticales, los gráficos, los menús y otros elementos son controles para Visual Basic. Cada control debe tener un nombre por medio del cual se pueda hacer referencia en el programa. Visual Basic proporciona nombres a los controles por defecto los mismos que el usuario puede modificar de acuerdo a sus objetivos y conveniencias. Sin embargo se recomienda observar algunas reglas para dar nombres a los distintos controles. Formularios En Visual Basic llamamos formulario ( form ) a una ventana. Un formulario es considerado como una especie de contenedor para los controles. Una aplicación puede tener varios formularios pero muchas veces un solo formulario puede ser suficiente para una aplicación sencilla. Los formularios también deben tener un nombre, que pueden crearse siguiendo las mismas reglas utilizadas para los controles. Objeto Un objeto es una definición abstracta de algo, identificado por dos subpartes inexorablemente unidas entre sí. En primer lugar un objeto, tiene atributos, en ocasiones llamados estados o propiedades, que lo describen. En segundo lugar, un objeto tiene comportamientos, a veces denominado funciones o métodos, los cuales describen lo que puede hacer. Por ejemplo un perro, un auto y una naranja son objetos. A continuación describamos algunos atributos y comportamientos posibles de cada uno.

Documentación de Visual Basic. Visual Basic incluye varias herramientas de documentación, cada una designada para ayudarle a aprender y usar un aspecto particular del producto. La documentación proporcionada con Visual Basic incluye lo siguiente: Ayuda de la interfaz de usuario de Visual Basic Busque aquí ayuda sobre los elementos de interfaz del Editor de Visual Basic, como comandos, cuadros de diálogo, ventanas y barras de herramientas. Referencia el lenguaje de Visual Basic La Referencia del lenguaje es el lugar donde buscar ayuda sobre el lenguaje de Visual Basic: todos sus métodos, propiedades, instrucciones, funciones, operadores y objetos. Uso de funciones de hoja de cálculo de Microsoft Excel en Visual Basic Puede usar la mayoría de las funciones de hoja de cálculo de Microsoft Excel en los enunciados de Visual Basic. Para obtener una lista de las funciones de hoja de cálculo que puede usar, vea Lista de funciones para hojas de cálculo en Visual Basic. Nota Algunas funciones de hoja de cálculo no tienen utilidad en Visual Basic. Por ejemplo, la función Concatenar no es necesaria, ya que en Visual Basic puede usar el operador & para unir varios valores de texto. Llamar a una función de hoja de cálculo desde Visual Basic En Visual Basic, las funciones de hoja de calculo de Microsoft Excel pueden ejecutarse mediante el objeto WorksheetFunction. El siguiente procedimiento Sub usa la función Min para obtener el valor más pequeño de un rango de celdas. En primer lugar, se declara la variable myRange como un objeto Range y, a continuación, se establece como el rango A1:C10 de la hoja Sheet1.ç Sub UseFunction()ç Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:C10") answer = Application.WorksheetFunction.Min(myRange) MsgBox answer

End Sub Si usa una función de hoja de cálculo que requiere como argumento una referencia de rango, deberá especificar un objeto Range. Por ejemplo, puede usar la función de hoja de cálculo Coincidir para efectuar una búsqueda en un rango de celdas. En una celda de hoja de cálculo, podría insertar una fórmula como =COINCIDIR(9;A1:A10;0). No obstante, en

un procedimiento de Visual Basic, para obtener el mismo resultado debe especificar un objeto Range. Sub FindFirst() myVar = Application.WorksheetFunction _ .Match(9, Worksheets(1).Range("A1:A10"), 0) MsgBox myVar

End Sub Nota

Las funciones de Visual Basic no usan el calificador WorksheetFunction. Una función puede tener el mismo nombre que una función de Microsoft Excel y, sin embargo, dar otros resultados. Por ejemplo, Application.WorksheetFunction.Log y Log dan resultados diferentes. Insertar una función de hoja de cálculo en una celda Para insertar una función de hoja de cálculo en una celda, especifique la función como el valor de la propiedad Formula del objeto Range correspondiente. En el siguiente ejemplo, la función ALEATORIO (que genera un número aleatorio) se asigna a la propiedad Formula del rango A1:B3 de la Hoja1 del libro activo. Sub InsertFormula() Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"

End Sub Ejemplo En este ejemplo se usa la función de hoja de cálculo Pago para calcular un pago de préstamo hipotecario. Tenga en cuenta que en el ejemplo se usa el método InputBox en lugar de la función InputBox, para que el método pueda comprobar el tipo. El enunciado Static hace que Visual Basic conserve los valores de las tres variables, que se mostrarán como valores predeterminados la próxima vez que se ejecute el programa. Static loanAmt Static loanInt Static loanTerm loanAmt = Application.InputBox _ (Prompt:="Loan amount (100,000 for example)", _ Default:=loanAmt, Type:=1) loanInt = Application.InputBox _ (Prompt:="Annual interest rate (8.75 for example)", _ Default:=loanInt, Type:=1) loanTerm = Application.InputBox _ (Prompt:="Term in years (30 for example)", _ Default:=loanTerm, Type:=1)

payment = Application.WorksheetFunction _ .Pmt(loanInt / 1200, loanTerm * 12, loanAmt)

MsgBox "Monthly payment is " & Format(payment, "Currency")

Entorno de desarrollo Su entorno de desarrollo es muy similar al de otros lenguajes • Se compone principalmente de su barra de herramientas y menús que se pueden personalizar con prácticamente la completa totalidad de los comandos del IDE a necesitar. • El espacio de trabajo donde se muestran todas las ventanas del proyecto, las vistas de código de módulos y objetos, y las vistas de diseño de formularios y componentes. • El Cuadro de herramientas (por defecto a la izquierda) contiene los controles con los que componen las ventanas de nuestra aplicación. Por defecto disponemos los controles básicos en este encantamos los siguientes : o Puntero: Se utiliza para manipular los controles existentes sobre el formulario. Con el puntero se puede seleccionar, mover y ajustar el tamaño de los objetos. o (PictureBox) Caja de Imagen: la principal funcion de este boton es agregar una imagen (Picture). o (Label) Etiqueta Este componente se utiliza para agregar textos o mensajes estaticos. asi mismo este componente conforme se van agregando más de estos en el UserForm se van numerando automaticamente. o (TextBox) Caja de texto a traves de este podemos escribir caracteres de distintos tipos y cualidades tanto numericos como alfabeticos o (Frame) Marco: Describe un marcod e agrupamiento en el que se puede incluir controles del mismo tipo. o (CommandButton) Botón de comando es decir que me permite ejecutar una funcion dada o propuesta en un ejercicio de USerForm. o (CheckBox) Casilla de verificación : Se utiliza para listar opciones y que el usuario pueda elegir entre estas. o (OptionButton) Botón de opción : permite elegir al usuario una ovarias opciones entre un grupo sea limitado o e ilimitado de opciones. Cuando se activa un botón de opción, los demás se desactivan. o (ComboBox) Lista desplegable: esta funcion le permite al usuario elegir entre las opciones ya establecidas y que se desplegan de esta. o (ListBox) Lista : Permite establecer elementos y visulizarlos en forma de columnas. Permite ofrecer al usuario una serie de opciones para que elija. El cuadro de lista indica las opciones que se encuentran disponibles y el usuario selecciona un elemento o entrada de la lista haciendo clic sobre el.

o (HScrollBar) Barra de desplazamiento horizontal : Sirven para informar de la posición del cuadro de desplazamiento dentro de la barra. o (VScrollBar) Barra de desplazamiento vertical o (DriveListBox) Lista de unidades de disco : es una especie de Combo Box o lista desplegable que nos permite visualizar las unidades que tengamos en la PC o (DirListBox) Lista de directorios o (FileListBox) Lista de archivos o (Shape) Figura o (Line) Línea : proporciona un medio sencillo para dibujar lineas en un formulario o (Image) Imagen o (Data) Conexión a origen de datos o (OLE) Contenedor de documentos embebidos compatibles con Object Linking and Embedding vba-ejemplos =Programación en entornos Visual Basic= Características de Visual Basic. Barra de titulo: muestra el nombre del proyecto y del formulario que se está diseñando actualmente Barra de menús: agrupa los menús despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic Barra de herramientas estándar: contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto. Simplifica la elección de opciones de los menús Archivo, Edición, Ver y Ejecutar; además, en el área derecha presenta la ubicación (coordenadas) y el tamaño del objeto seleccionado Ventana de formulario: es el área donde se diseña la interfaz gráfica, es decir, es donde se inserta electo gráficos, como botones, imágenes, casilla de verificación, cuadros de listas, etc. Cuadro de herramientas: presenta todos los controles necesarios para diseñar una aplicación, como cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc.

Ventana de proyecto: muestra los elementos involucrados en el proyecto, como formularios, módulos, controles oxc, etc. Cada elemento puede seleccionarse en forma independiente para su edición. Ventana de posición del formulario: muestra la ubicación que tendrá el formulario en la pantalla, cuando ejecute la aplicación. Esta ubicación puede cambiarse si se hace clic con el botón izquierdo del mouse. La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que abajo dice "Form1 Form", lo que está en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un Formulario (Form) Panel de controles Contiene los objetos (controles) que podemos insertaren el formulario. Para nuestro primer ejemplo vamos a utilizar los que están señalados. Etiqueta de texto: Escribe texto en el formulario Cuadro de texto: Crea un espacio donde puede escribir el usuario Botón: nos permite la interaccion entre formularios o la ejecucion de acciones Línea: nos permite dibujar líneas Shape: nos permite dibujar figuras geométricas Timer: introduce una llamada al reloj del sistema para incluir eventos a lo largo de un espacio temporal. TextBox:Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situación del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamaño que queramos en nuestro formulario Label Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la visualización de datos en el mismo, no permitiendo la introducción de datos por parte del usuario,es decir es una etiqueta en donde colocamos un titulo que aparecera en un formulario Este componente se utiliza para desplegar textos o mensajes estáticos dentro de las formas, textos tales como encabezados, solicitud al usuario del programa para que proporcione algún dato o información(edad, dame sueldo, etc.), en cierta forma hace las funciones de printf, cout, writeln, print, display, etc., pero solo cuando se consideran en su parte de mensajes.

También es un objeto en Visual Basic y por tanto tiene asociados sus propias propiedades y eventos, al mismo tiempo como se está usando dentro del objeto form1, muchas propiedades que se definan para el objeto Form1, el objeto Label1 las va a heredar. Si bien es cierto que el objeto se llama Label, pero cuando se ponen dentro de una forma Visual Basic los va numerando automáticamente, si se ponen tres Labels en Form1, ellos se llaman, simbolizan, procesan o programan como Label1, Label2, Label3. Es su propiedad Caption, la que lleva el contenido del mensaje que se quiere desplegar en la pantalla, solo click derecho a un lado de la propiedad Caption en la pagina de propiedades, teniendo seleccionada la caja Label1 en la forma y escribir el texto indicado. CommandButton Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos. variables son las zonas asignadas por la memoria del ordenador para almacenar los datos.

OptionButton Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción será un control optionbutton diferente.

== DECLARACIONES:_Declarar instrucciones == Escribir instrucciones de Visual Basic Las instrucciones de declaración se usan para dar nombre y definir procedimientos, variables, matrices y constantes. Cuando se declara un procedimiento, variable o constante, también se define su alcance que depende del lugar en que se coloque la declaración y de las palabras clave que se usan para ello. Las instrucciones de declaración, que dan nombre a una variable, constante o procedimiento y pueden también especificar su tipo de datos. El siguiente ejemplo contiene tres declaraciones. Sub DarFormato() Const limite As Integer = 33 Dim miCelda As Range ' Mas instrucciones End Sub

La instrucción Sub (con la correspondiente instrucción End Sub) declara un procedimiento llamado DarFormato. Todas las instrucciones que aparecen entre las instrucciones Sub y End Sub se ejecutan cuando el procedimiento DarFormato se ejecuta o se llama. En VBA, es necesario declarar las variables antes de usarlas mediante la asignación de nombres y tipos de datos. Hay muchos tipos de datos VBA, que pueden ser divididos en dos tipos numéricos y datos no numéricos Escribir instrucciones de declaración Valores iniciales Cuando se ejecuta el código que contiene una declaración de instrucción, Visual Basic reserva la memoria requerida para el elemento declarado. Si el elemento contiene un valor, Visual Basic lo inicializa al valor predeterminado para su tipo de datos. Para obtener más información, vea "Comportamiento" en Instrucción Dim (Visual Basic). Continuar instrucciones en múltiples líneas Una instrucción cabe normalmente en una línea, pero puede continuarse en la siguiente utilizando un carácter de continuación de línea. En el siguiente ejemplo, la instrucción ejecutable MsgBox se extiende por las tres líneas que le siguen: Sub CuadroDemo()'Este procedimiento declara una variable de cadena, ' le asigna el valor Juan y a continuación ' presenta en pantalla un mensaje concatenado. Dim miVar As String miVar = "Juan" MsgBox Prompt:="Hola " & myVar, _ Title:="Cuadro de saludo", _ Buttons:=vbExclamation End Sub

Añadir comentarios Los comentarios pueden explicar un procedimiento o una instrucción en particular a cualquier persona que tenga que leer el código. Visual Basic ignora los comentarios cuando ejecuta los procedimientos. Las líneas de comentario comienzan por un apóstrofe (') o con la palabra clave Rem seguida por un espacio y puede colocarse en cualquier lugar del procedimiento. Para añadir un comentario a la misma línea que ocupa una instrucción, debe insertarse un apóstrofe después de esta, seguido por el comentario. Los comentarios aparecen en pantalla en color verde, color predefinido. Comprobar errores de sintaxis Si se presiona la tecla ENTRAR después de escribir una línea de código y la línea aparece en pantalla en color rojo , debe averiguar cuál es el problema en esa instrucción y corregirlo. Aunque en muchas de las situaciones cuando se escribe una linea de codigo el programa devuelve un mensajecon error de sintaxis sin tener la necesidad de presionar la tecla entrar los muestra en forma inmediata al compilar el código.

Escribir instrucciones de declaración Las instrucciones de declaración se usan para dar nombre y definir procedimientos, variables, matrices y constantes. Cuando se declara un procedimiento, variable o constante, también se define su alcance que depende del lugar en que se coloque la declaración y de las palabras clave que se usan para ello. El siguiente ejemplo contiene tres declaraciones. Sub DarFormato() Const limite As Integer = 33 Dim miCelda As Range ' Mas instrucciones End Sub

La instrucción Sub (con la correspondiente instrucción End Sub) declara un procedimiento llamado DarFormato. Todas las instrucciones que aparecen entre las instrucciones Sub y End Sub se ejecutan cuando el procedimiento DarFormato se ejecuta o se llama. Declarar constantes La instrucción Dim declara la variable miCelda. El tipo de datos es objeto, en este caso, un objeto Range de Microsoft Excel. Se puede declarar una variable que sea cualquiera de los objetos que están accesibles a la aplicación que se está usando. Las instrucciones Dim son un tipo de instrucción que se utiliza para declarar variables. Otras palabras clave utilizadas en las declaraciones son ReDim, Static, Public, Private y Const. Declarar variables Una variable se declara para especificar o detallar su nombre y caracteristicas, la instrucción de declaración para variables es la instrucción DIM. la ubicación y contenido de la instrucción DIM determina las características de las variables. es una instrucción completa. Puede contener las palabras clave, operadores, variables, constantes y expresiones. Ejecuta una serie de afirmaciones repetidas haciendo referencia a un solo objeto o estructura.debemos tener en cuenta que cuando declaramos un elemento de programacion, tambien se puede definir su ambito, tipo, y nivel de acceso. Cada declaración pertenece a una de las siguientes categorías:

• Instrucciones de declaración, que el nombre de una variable, constante o procedimiento, y también puede especificar un tipo de datos. • Declaraciones ejecutables, que inician acciones. Estas declaraciones pueden llamar a un método o función, y pueden circular o sucursal a través de bloques de código. instrucciones ejecutables incluyen Instrucciones de asignación, que asignan un valor o una expresión a una variable o constante. Instrucciones de declaración en Visual Basic

Las instrucciones de declaración se utilizan para definir procedimientos, variables, propiedades, matrices y constantes, y asignarles nombre. Cuando se declara un elemento de programación, también se puede definir su tipo de datos, nivel de acceso y ámbito. Para obtener más información, vea Características de los elementos declarados. Características de los elementos declarados Una característica de un elemento declarado es un aspecto que afecta a la forma de interactuar del código con él. Cada elemento declarado tiene una o varias de las siguientes características a asociadas con él Tipo de datos Valores que el elemento puede contener y como se alamcena esos valores Consumo de memoria Al declarar un tipo de datos básico, no debe suponerse que su consumo de memoria es igual a su asignación de almacenamiento nominal. Esto se debe a las consideraciones siguientes: Asignación de almacenamiento. Common Language Runtime puede asignar el almacenamiento en función de las características actuales de la plataforma en la que se ejecuta la aplicación. Si la memoria está casi completa, se pueden empaquetar los elementos declarados de la forma más estrecha posible. En otros casos, se podrían alinear las direcciones de memoria a los límites del hardware naturales para optimizar el rendimiento. Ancho de plataforma. La asignación de almacenamiento en una plataforma de 64 bits es diferente a la asignación en una plataforma de 32 bits. Tipos de datos compuestos

Las mismas consideraciones se aplican a cada miembro de un tipo de datos compuesto, como una estructura o una matriz. No se pueden sumar simplemente todas las asignaciones de almacenamiento nominales de los miembros de tipo. Además, existen otras consideraciones, como las siguientes: Sobrecarga Diseño de almacenamiento. Periodo de duración

Periodo en tiempo de ejecución durante el cual el elemento esta disponible para su uso Cómo: Prolongar la duración de una variable Normalmente, una variable deja de existir cuando el elemento de programación en el que se declara deja de existir. Sin embargo, puede alargar su duración más que la de su elemento contenedor declarándola con la palabra clave Static (Visual Basic). Período de duración en Visual Basic El período de duración de un elemento declarado es el tiempo durante el cual está disponible para el uso. Las variables son los únicos elementos que tienen un período de duración. Para este propósito, el compilador trata los parámetros de procedimiento y la función vuelve como un caso especial de variable. El período de duración de una variable representa el tiempo durante el cual puede contener un valor. Su valor puede variar en su período de duración, pero siempre contiene un valor. Para alargar la duración de una variable más que la de su elemento contenedor Si la variable es una variable local (declarada dentro de un procedimiento), incluya la palabra clave Static en la instrucción Instrucción Dim (Visual Basic) que la declara. Una variable estática existe mientras exista la clase o módulo que contiene el procedimiento que declara la variable. Si una variable local está dentro de un procedimiento Shared (Visual Basic), el procedimiento y sus variables existen siempre que la aplicación esté en ejecución. No utilice Static en este caso.'Si la variable es una variable miembro (declarada dentro de una clase o estructura, fuera de todo procedimiento), incluya la palabra clave Shared en la instrucción Dim que la declara. Una variable compartida no está asociada a ninguna instancia de su clase o estructura y existe siempre que la aplicación esté en ejecución. No puede utilizar Static en una variable miembro. Si una variable miembro se declara en un módulo, existe siempre que la aplicación esté en ejecución. No utilice Shared en este caso. Ambito Conjunto de código que puede hacer referencia al elemento sin calificar su nombre.

Cómo: Controlar el ámbito de una variable Normalmente, una variable está en ámbito, o visible para referencia, en toda la región donde se declara. En algunos casos, el nivel de acceso de la variable puede influir en su ámbito.

Ámbito en Visual Basic El ámbito de un elemento declarado es el conjunto de todo el código que puede hacer referencia a él sin calificar su nombre o marcarlo como disponible mediante Imports (Instrucción). Un elemento puede tener uno de los niveles de ámbito siguientes: Nivel Descripción Ámbito de bloque Ámbito disponible únicamente en el bloque de codigo en que se ha se declarado Ámbito de procedimiento Disponible para todo el código dentro del procedimiento en el que se ha declarado Ámbito de módulo Disponible para todo el código dentro del módulo, clase o estructura en el que se ha declarado Ámbito de espacio de nombres Disponible para todo el código dentro del espacio de nombres en el que se ha declarado Nivel de AccesoPermiso otorgado al código para hacer uso del elemento Cómo: Controlar la disponibilidad de una variable La disponibilidad de una variable se controla especificando su nivel de acceso. El nivel de acceso determina qué código tiene permiso de lectura o escritura en la variable. • Las variables miembros (definidas en el nivel de módulo y fuera de cualquier procedimiento) tienen como valor predeterminado un acceso público que significa cualquier código que puede verlas y tener acceso a ellas. Puede cambiar esto especificando un modificador de acceso. • Las variables locales (definidas dentro de un procedimiento) tienen nominalmente un acceso público, aunque sólo el código dentro de su procedimiento puede tener acceso a ellas. No puede cambiar el nivel de acceso de una variable local pero puede cambiar el nivel de acceso del procedimiento que la contiene.

= Instrucciones de Asignación = Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda. por ejemplo v = 42: este ejemplo nos indica que la instrucción de asignación almacena el valor literal 42 en la variable v Es decir una instrucción de asignación asigna el valor de una expresión a una variable. En general, si la variable que se va a asignar es una propiedad, la propiedad debe ser de lectura y escritura o de sólo escritura; en caso contrario, se produce un error de compilación. Si la variable es una variable de sólo lectura, la asignación debe producirse en un constructor Shared o un constructor de instancia apropiado para el tipo de la variable; en caso contrario, se producirá un error de compilación. AssignmentStatement ::= SimpleAssignmentStatement | DelegateAssignmentStatement |

CompoundAssignmentStatement | MidAssignmentStatement

Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda, como en el ejemplo siguiente. v = 42 En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la variable v. OPERADORES DE ASIGNACION A continuación se recogen los operadores de asignación definidos en Visual Basic. Operador = : Este operador asigna un valor a una variable o propiedad. Operador ^= : Eleva el valor de una variable o una propiedad a la potencia de una expresión y asigna el resultado de nuevo a la variable o la propiedad. Operador *= : Multiplica el valor de una variable o una propiedad por el valor de una expresión y asigna el resultado a la variable o la propiedad. Operador /= : Divide el valor de una variable o una propiedad por el valor de una expresión y asigna el resultado de punto flotante a la variable o la propiedad. \= (Operador) : Divide el valor de una variable o una propiedad por el valor de una expresión y asigna el resultado entero a la variable o la propiedad. Operador += : Suma el valor de una expresión numérica al valor de una propiedad o variable numérica y asigna el resultado a la variable o a la propiedad. También se puede utilizar para concatenar una expresión String con una propiedad o variable String y asignar el resultado a la variable o a la propiedad. Operador -= : Sustrae el valor de una expresión del valor de una variable o propiedad y asigna el resultado a la variable o propiedad. Operador = : Realiza un desplazamiento aritmético a la derecha sobre el valor de una variable o una propiedad y asigna el nuevo valor a la variable o la propiedad. Operador &= : Concatena una expresión String a una variable o propiedad String y asigna el resultado a la variable o propiedad.

METODOS PARA LA ASIGNACION Existen tres métodos para dar valor a una variable: • Leer un valor de un archivo • Pedir al usuario que teclee un valor • Asignar un valor dentro de un programa

Al tercer método corresponde la instrucción de asignación. La sintaxis general de la instrucción de asignación es: nombre_de_la_variable = valor El valor a la derecha del signo igual puede ser una constante, otra variable o una expresión que combine constantes y variables, pero siempre la variable y su valor deben ser del mismo tipo de dato. Ejemplos: edad% = 5 area! = 12.3 nombre$ = “Pedro” Si el tipo de dato del valor no coincide con el tipo de dato declarado para la variable, se producirá un error durante la ejecución del programa (Run-time error ‘13’: Type Mismatch). NOTA Nótese que el valor asignado a una variable del tipo string en VB consiste en una cadena de caracteres encerrada entre comillas. Una cadena de caracteres puede eventualmente estar formada por un solo carácter. La instrucción de asignación es destructiva; esto significa que si antes de la asignación la variable tiene algún valor, éste se pierde al ejecutarse la instrucción de asignación.

Elementos de programación elegibles El elemento de programación del lado izquierdo del operador de asignación debe poder aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que no es ReadOnly (Visual Basic), o debe ser un elemento de matriz. En el contexto de una instrucción de asignación, este tipo de elemento a veces se denomina valor l, que significa "valor de la izquierda". El valor del lado derecho del operador de asignación se genera mediante una expresión que puede estar formada por cualquier combinación de literales, constantes, variables, propiedades, elementos de matriz, otras expresiones o llamadas a función. Tipos de datos en instrucciones de asignación Además de valores numéricos, el operador de asignación también puede asignar valores String. También se pueden asignar valores Boolean utilizando un literal Boolean o una expresión Boolean. Igualmente, se pueden asignar valores adecuados a elementos de programación del tipo de datos Char, Date u Object. También se puede asignar una instancia de objeto a un elemento declarado como miembro de la clase a partir de la que se crea esa instancia. Instrucciones de asignación compuesta Las instrucciones de asignación compuesta realizan primero una operación en una expresión antes de asignarla a un elemento de programación. En el siguiente ejemplo se muestra uno de estos operadores, +=, que incrementa el valor de la variable del lado izquierdo del operador con el valor de la expresión de la derecha. Mediante el uso de este tipo de operadores, puede realizarse una serie de operaciones de asignación compuestas. Para obtener una lista de estos operadores y más información sobre ellos, vea Operadores de asignación. El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de cadenas existentes. Conversiones de tipos en instrucciones de asignación El valor que se asigna a una variable, propiedad o elemento de matriz debe ser de un tipo de datos apropiado para el elemento de destino. En general, hay que intentar generar un valor del mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden convertir en otros tipos durante la asignación.

Las conversiones de restricción (las que no son de ampliación) conllevan el riesgo de error o de pérdida de datos en tiempo de ejecución. Las conversiones de restricción se pueden realizar explícitamente mediante una función de conversión de tipos, o se puede indicar al compilador que realice implícitamente todas las conversiones estableciendo Option Strict Off. Para obtener más información, vea Conversiones implícitas y explícitas. Clases de Instrucciones Las instrucciones de asignación, en las que se evalua una expresión sobre variables y constantes del lenguaje, y el resulatado se asigna en una variable Las instrucciones de control de flujo como las instrucciones IF-THEN-ELSE,en donde se selecciona las instrucciones a realizar en función del resultado de una expresión lógica Sub Pregunta() Dim suNombre As String suNombre = InputBox("¿Cómo se llama?") MsgBox "Su nombre es " & suNombre End Sub

La instrucción Let es opcional y normalmente se omite. Por ejemplo, la instrucción de asignación anterior podría haberse escrito así: Let suNombre = InputBox("¿Cómo se llama?"). La instrucción Set se utiliza para asignar un objeto a una variable que ha sido declarada como objeto. La palabra clave Set es necesaria. En el siguiente ejemplo, la instrucción Set asigna un rango de Hoja1 a la variable de objeto miCelda: Sub DarFormato() Dim miCelda As Range Set miCelda = Worksheets("Hoja1").Range("A1") With miCelda.Font .Bold = True .Italic =true End With End Sub

Las instrucciones que establecen valores propiedad son también instrucciones de asignación. El siguiente ejemplo asigna la propiedad Bold del objeto Font para la celda activa: ActiveCell.Font.Bold = True

En Visual Basic, una instrucción es una comando completo que puede contener palabras clave, operadores, variables, constantes y expresiones. Las instrucciones se clasifican en dos categorías: instrucciones de declaración, que asignan nombre a una variable, constante o procedimiento, y también pueden especificar un tipo de datos, e instrucciones ejecutables, que inician acciones

Una instrucción de asignación asigna el valor de una expresión a una variable. En general, si la variable que se va a asignar es una propiedad, la propiedad debe ser de lectura y escritura o de sólo escritura; en caso contrario, se produce un error de compilación. Si la variable es una variable de sólo lectura, la asignación debe producirse en un constructor Shared o un constructor de instancia apropiado para el tipo de la variable; en caso contrario, se producirá un error de compilación. AssignmentStatement SimpleAssignmentStatement DelegateAssignmentStatement CompoundAssignmentStatement MidAssignmentStatement

Realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda, como en el ejemplo siguiente. Ejemplo: a = 43 En el ejemplo anterior, la instrucción de asignación almacena el valor literal 43 en la variable a. En las instrucciones de asiganacion constan de tres metodos para dar valores a una variable: 1. Leer el valor de un archivo 2. Pedir al usuario que ingrese un valor mediante teclado 3. Asiganr el valor dentro del programa Tipos de datos en instrucciones de asignación Además de valores numéricos, el operador de asignación también puede asignar valores String, tal como muestra el ejemplo siguiente. Dim a, b As String a = "String variable assignment" b = "Con" & "cat" & "enation" ' The preceding statement assigns the value "Concatenation" to b. También se pueden asignar valores Boolean utilizando un literal Boolean o una expresión Boolean, tal como muestra el ejemplo siguiente.

Dim r, s, t As Boolean r = True s = 45 > 1003 t = 45 > 1003 Or 45 > 17 ' The preceding statements assign False to s and True to t. Igualmente, se pueden asignar valores adecuados a elementos de programación del tipo de datos Char, Date u Object. También se puede asignar una instancia de objeto a un elemento declarado como miembro de la clase a partir de la que se crea esa instancia. Instrucciones de asignaciones simples Una instrucción de asignación almacena el resultado de una expresión en una variable. El tipo de la expresión debe poder convertirse implícitamente en el tipo de la variable. En el tiempo de ejecución, se evalúa la expresión a la derecha de la asignación antes de la expresión de variable. Si la variable que se va a asignar es un elemento de matriz de un tipo de referencia, se realizará una comprobación en tiempo de ejecución para garantizar que la expresión es compatible con el tipo de elemento de matriz. En el ejemplo siguiente, la última asignación provoca el inicio de una excepción ArrayTypeMismatchException, porque no se puede almacenar una instancia de ArrayList en un elemento de una matriz String. Ejemplo Dim sa(10) As String Dim oa As Object() = sa oa(0) = Nothing ' OK. oa(1) = "Hello" ' OK. oa(2) = New ArrayList() ' ArrayTypeMismatchException is thrown. Instrucciones de asignación compuesta Las instrucciones de asignación compuesta realizan primero una operación en una expresión antes de asignarla a un elemento de programación. En el siguiente ejemplo se muestra uno de estos operadores, +=, que incrementa el valor de la variable del lado izquierdo del operador con el valor de la expresión de la derecha.

n += 1 En el ejemplo anterior se suma 1 al valor de n y, a continuación, el nuevo valor se almacena en n. Es el equivalente abreviado de la siguiente instrucción: n=n+1 Mediante el uso de este tipo de operadores, puede realizarse una serie de operaciones de asignación compuestas. Para obtener una lista de estos operadores y más información sobre ellos, vea Operadores de asignación. El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de cadenas existentes, como se muestra en este ejemplo. Dim q As String = "Sample " q &= "String" ' q now contains "Sample String". Conversiones de tipos en instrucciones de asignación El valor que se asigna a una variable, propiedad o elemento de matriz debe ser de un tipo de datos apropiado para el elemento de destino. En general, hay que intentar generar un valor del mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden convertir en otros tipos durante la asignación. Para obtener información sobre cómo convertir entre tipos de datos, vea Conversiones de tipos en Visual Basic. En pocas palabras, Visual Basic convierte automáticamente un valor de un tipo dado en cualquier otro tipo al que amplia. Una conversión de ampliación es aquella que siempre se produce en tiempo de ejecución y no pierde datos. Por ejemplo, Visual Basic convierte un valor Integer en Double cuando es apropiado, porque Integer se amplia a Double. Para obtener más información, vea Conversiones de ampliación y de restricción. Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda, como en el ejemplo siguiente. El elemento de programación del lado izquierdo del operador de asignación debe poder aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que no es ReadOnly (Visual Basic), o debe ser un elemento de matriz. En el contexto de una instrucción de asignación, este tipo de elemento a veces se denomina valor l, que significa "valor de la izquierda".

Instrucciones Ejecutables Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a otra parte del código, recorrer varias instrucciones con un bucle o evaluar una expresión. Una instrucción de asignación es un caso especial de una instrucción ejecutable. Una instrucción ejecutable inicia una acción. Puede ejecutar un método o función y saltar a bloques de código o no ejecutar otros. Las instrucciones ejecutables incluyen a menudo operadores condicionales o matemáticos. El siguiente ejemplo que veremos a continuacion utiliza utiliza la instrucción For Each...Next para pasar por cada una de las celdas de un rango llamado MiIntervalo en la Hoja1 de un libro Microsoft Excel activo. La variable c es una celda en la colección de celdas que componen MiIntervalo... ejemplo de uina instruccion ejecutable: Sub DarFormato() Const limite As Integer = 33 For Each c In Worksheets("Hoja1").Range("MiIntervalo").Cells If c.Value > limite Then With c.Font .Bold = True .Italic = True End With End If Next c MsgBox "¡Fin!" End Sub

Otro ejemplo de una instruccion ejectutable

Public Sub startWidget(ByVal aWidget As widget, _ ByVal clockwise As Boolean, ByVal revolutions As Integer) Dim counter As Integer If clockwise = True Then For counter = 1 To revolutions aWidget.spinClockwise() Next counter Else For counter = 1 To revolutions aWidget.spinCounterClockwise() Next counter End If End Sub

en donde vemos que La instrucción If...Then...Else del ejemplo comprueba el valor de la celda. Si el valor es mayor de 33, la instrucción With establece las propiedades Bold e Italic del objeto Font para esa celda. Las instrucciones If...Then...Else acaban con una instrucción End If. y La instrucción With puede evitar que haya que escribir muchas veces las mismas palabras ya que las instrucciones que contiene se ejecutan automáticamente en el objeto que sigue a la palabra clave With. La instrucción Next llama a la siguiente celda de la colección de celdas contenida en MiIntervalo. La función MsgBox (que presenta en pantalla un cuadro de diálogo de Visual Basic) presenta un mensaje indicando que el procedimiento Sub ha terminado de ejecutarse. 

En el ejemplo siguiente se utiliza una estructura de control If...Then...Else para ejecutar diferentes bloques de código basándose en el valor de una variable.En cada bloque de código, un bucle For...Next se ejecuta un número especificado de veces...

Public Sub startWidget(ByVal aWidget As widget, ByVal clockwise As Boolean, ByVal revolutions As Integer) Dim counter As Integer If clockwise = True Then For counter = 1 To revolutions aWidget.spinClockwise() Next counter Else For counter = 1 To revolutions aWidget.spinCounterClockwise() Next counter End If End Sub

Después, la instrucción If del ejemplo anterior comprueba el valor del parámetro clockwise.Si el valor es True, llama al método spinClockwise de aWidget.Si el valor es False, llama al método spinCounterClockwise de aWidget.La estructura de control If...Then...Else finaliza con End If.

Banco de Preguntas Pregunta 1 ¿QUE ES VISUAL BASIC? Visual Basic es un lenguaje de programación desarrollado por el alemán Alan Cooper para Microsoft, el cual es el utilizado para el desarrollo de programas.Dicho lenguaje de programación nos permite diseñar:menús,ventanas,etc de una forma

"SIMPLE".Posteriormente se deberán definir,la apariencia y el comportamiento de las aplicaciones creadas tanto a nivel Visual como a nivel del Código para la programación Consiste en un editor de código (Programa donde se escribe el código fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser bien compilado),un compilador programa que traduce el código fuente a lenguaje de máquina. Es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar la funcionalidad de programas de Microsoft Office. Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic 5.0 y 6.0.

Pregunta 2 ¿Que es una instrucción de Asignacion? y de un ejemplo: Una Instrucción de asignación asigna el valor de una expresión a una variable. En general, si la variable que se va a asignar es una propiedad, la propiedad debe ser de lectura y escritura o de sólo escritura; en caso contrario, se produce un error de compilación. Si la variable es una variable de sólo lectura, la asignación debe producirse en un constructor Shared o un constructor de instancia apropiado para el tipo de la variable; en caso contrario, se producirá un error de compilación. Las variables están indefinidas hasta que sus valores se espefican explícitamente mediante una instrucción de asignaciíon, dichas instrucciones realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda, como en el ejemplo siguiente. El valor del lado derecho del operador de asignación se genera mediante una expresión que puede estar formada por cualquier combinación de constantes, variables, propiedades, elementos de matriz, otras expresiones o llamadas a función. Ejemplo de una instruccion de asignacion: a = 40 b = 15 c = 40+15 c= 55

Pregunta 3

¿QUE ES UNA INSTRUCCION EJECUTABLE? y Dar un ejemplo con una sentencia. una instruccion ejecutable Es aquella que realiza una acción. También puede llamar a un procedimiento, bifurcar(dividir, separar) a otra parte del código, recorrer varias instrucciones con un bucle o evaluar una expresión... En el siguiente ejemplo se utilizará la instrucción ejecutable IF como lo mostramos a continuacion:

Sub INSTRUCCION_EJECUTABLE_IF () Dim Num as Integer Num = Inputbox("INGRESE NUMERO") If Num > 5 and Num < 10 then Msgbox "VERDADERO",,"PRUEBAS" Else Msgbox "FALSO",,"PRUEBAS" End If End Sub

Pregunta 4 ¿QUE ES UNA SENTENCIA DE CONTROL? Las sentencias de control son, denominadas también estructuras de control, permiten tomar decisiones y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. Este tipo de estructuras son comunes en cuanto a concepto en la mayoría de los lenguajes de programación, aunque su sintaxis puede variar de un lenguaje de programación a otro. Se trata de unas estructuras muy importantes ya que son las encargadas de controlar el flujo de un programa según los requerimientos del mismo. Visual Basic dispone de las siguientes estructuras: - If...Then - If...Then...Else - Select case - For... Next - While...Wend - Do...loop - Goto

Pregunta 5 ¿QUE ES UNA VARIABLE LOCAL? Una variable local es aquella que se declara dentro de un procedimiento. Esta variable sólo está disponible para el código dentro del procedimiento y se pueden declarar utilizando las sentencias Dim, tal como figura a continuación. Dim sum As Integer

Las variables locales existen siempre y cuando el procedimiento en el que se declaran, se está ejecutando. Una vez que el procedimiento se ejecuta, los valores de sus variables locales se pierden y la memoria utilizada por estas variables se libera y puede ser recuperada. Las variables que se declaran con la palabra clave Dim sólo existen mientras el procedimiento está siendo ejecutado. En la mayoría de los lenguajes de programación las variables locales son variables automáticas que son almacenadas directamente en la fila .Esto significa que cuando una función se repite o se llama así misma, las variables locales reciben, en cada instancia de la función, espacio para el direccionamiento de memoria separados esfecifiacmente para dichas variables. ¿Si uso una variable local dentro del evento de un Boton esta me sirve para ver cuantas veces este ha sido presionado? No , devido a que como se explicaba anteriormente al estar declarado dentro de el mismo elemento al que se quiere que se lo cuente la variable estara declarandose cada vez que este evento se accione por lo tanto no puede ser usada como contador

Pregunta 6 ¿Para qué se utilizan las Instrucciones de Declaración? Las instrucciones de declaración se utilizan para definir procedimientos, variables, propiedades, matrices,constantes, y asignarles un nombre caracteristico y respectivo que las individualize. Cuando se declara un elemento de programación, también se puede definir su tipo de datos, nivel de acceso y ámbito. Una instrucción-de-declaración (declaration-statement) declara una variable o una constante local. Las instrucciones de declaración se pueden incluir en bloques, pero no están permitidas como instrucciones incrustadas.

Pregunta 7 ¿Cuales son los metodos para dar valor a una variable en las instrucciones de asignacion? Los metodos para dar valor a una variable en las instrucciones de asignacion son los siguientes: 1) Leer el valor del archivo 2) Pedir al usuario que ingrese un valor mediante teclado 3) Asignar el valor dentro del programa

Pregunta 8 Cuando se declara un elemento de programación ¿Se puede definir:? 

Ámbito



Tipo



Nivel de acceso

Pregunta 9 ¿Qué ejecuta las instrucciones de declaración? Una instruccion de declaracion se la puede definir como una serie de afirmaciones repetidas que hacen referencia a un solo objeto o estructura.Que asignan nombre a una variable, constante o procedimiento, y también pueden especificar un tipo de datos, e instrucciones ejecutables, que inician acciones. Las instrucciones de declaración se utilizan para definir procedimientos, variables, propiedades, matrices y constantes, y asignarles nombre. Cuando se declara un elemento de programación, también se puede definir su tipo de datos, nivel de acceso y ámbito. Existen tres tipos de declaración: La primera declaración es la instrucción Sub. Junto con su instrucción End Sub correspondiente, declara un procedimiento denominado applyFormat. También especifica que applyFormat es Public, lo que quiere decir que cualquier código que pueda hacer referencia a ella, puede también llamarla. La segunda declaración es la instrucción Const. Que declara la constante limit, que especifica el tipo de datos Integer y un valor de 33. La tercera declaración es la instrucción Dim. Que declara la variable thisWidget. El tipo de datos es un objeto concreto, específicamente un objeto creado a partir de la clase Widget. Puede declarar una variable para que sea de cualquier tipo de datos elemental o de cualquier tipo de objeto que esté expuesto a la aplicación que está usando. Valores iniciales Cuando se ejecuta el código que contiene una declaración de instrucción, Visual Basic reserva la memoria requerida para el elemento declarado. Si el elemento contiene un valor, Visual Basic lo inicializa al valor predeterminado para su tipo de datos.

Pregunta 10 ¿Qué funciones tienen las instrucciones ejecutables?



Realiza una acción.



Puede llamar a un procedimiento



Bifurcar a otra parte del código



Recorrer varias instrucciones con un bucle



Evaluar una expresión

Pregunta 11 ¿Que es un Bucle? Indique los más frecuentes Un bucle o ciclo, en programación, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse. Generalmente, un bucle es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro. También conocido como ciclo, es una sentencia que se realiza repetidas veces a un determinado código, hasta que la condición asignada deje de cumplirse. Es utilizado para hacer una acción repetida sin tener que escribir varias veces el mismo código, ahorra tiempo, deja el código más claro y facilita su modificación. Los más frecuentes son: • Bucle While • Bucle For • Bucle Do o Repetir.

Pregunta 13 ¿Que se puede hacer con Visual Basic? Con visual basic se pueden crear apicaciones con las caracteristicas de los programas de windows esto es con ventanas , botones,cajas de dialogo y de texto, botones de opcion y de seleccion, barras de desplazamiento, graficos, menus, etc. con visual basic se puede crear programas para uso personal, para un grupo de trabajo, para una empresa ,aplicaciones distribuidasa a través de internet , aplicaciones de base de datos y muchas cosas mas de acuerdo a su ingenio e imaginacion .

Pregunta 14 Cual es el objetivo principal de Visual Basic?

El objetivo de Visual Basic es diseñar una o varias aplicaciones de manera rápida basicamente para desarrollar prototipo de Sistemas que sean lo mas entendible y eficiente posible tambien nos permite crear aplicaciones acorde a nuestras necesidades y a las necesidades que se tengan en una microempresa.Es uno de los lenguajes de programación más usados debido a su simplicidad, mezclada con unas grandes posibilidades de desarrolloen entornos . El objetivo principal es conocer los tipos de datos y sus formas de uso; utilizar las instrucciones alternativas y bucles, y manejar las funciones y los procedimientos, llegando a realizar los primeros programas simples, para ello, conseguirá escribir código correcto y legible. Como segundo objetivo y principal, el alumno conocerá las características de la programación orientada a objetos, se adentrará en el funcionamiento de los proyectos de Visual Basic e insertará formularios, así como manejará los métodos avanzados para programar eventos de los controles y conectar correctamente varios de ellos. Sin olvidar, que conocerán los métodos de tratamiento de archivos de texto. En definitiva el alumno sabrá diseñar, depurar, generar y empaquetar aplicaciones.

Pregunta 15 'Características de Visual Basic.' Barra de titulo: muestra el nombre del proyecto y del formulario q se está diseñando actualmente Barra de menús: agrupa los menús despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic para aplicaciones. Barra de herramientas estándar: contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto. Simplifica la elección de opciones de los menús Archivo, Edición, Ver y Ejecutar; además, en el área derecha presenta la ubicación (coordenadas) y el tamaño del objeto seleccionado Ventana de formulario: es el área donde se diseña la interfaz gráfica, es decir, es donde se inserta electo gráficos, como botones, imágenes, casilla de verificación, cuadros de listas, etc. Cuadro de herramientas: presenta todos los controles necesarios para diseñar una aplicación, como cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc. Ventana de proyecto: muestra los elementos involucrados en el proyecto, como formularios, módulos, controles oxc, etc. Cada elemento puede seleccionarse en forma independiente para su edición. Ventana de posición del formulario: muestra la ubicación que tendrá el formulario en la pantalla, cuando ejecute la aplicación. Esta ubicación puede cambiarse si se hace clic con el botón izquierdo del mouse. La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que

abajo dice "Form1 Form", lo que está en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un Formulario.

Pregunta 16 ¿Cómo grabar una macro Excel VBA? Para aprender a programar VBA de Excel la mejor manera de empezar es probablemente la grabación de macros en Excel. Es fácil grabar tus propias macros. Y con un lígero retoque, salen todavía mejor. Para ejemplos de marcado, ver ejemplos de macros útiles. Preparar la grabación la grabacion en exel de visual se resuelve exclusivamente hay que habilitar macros Entra Herramientas - Macro - Grabar nueva macro. Nombre de la macro Pon un nombre descriptivo, por ejemplo DosDecimales. Si quieres espacio entre palabras, pon Dos_Decimales. Método abreviado (atajo) Si quieres que la macro se active desde el teclado, pon la combinación, por ejemplo CTRL + L. Presionando MAYUSCULA te darán todavía más combinaciones. Guardar macro en O se guarda en Este Libro, o en Libro de Macros Personales. Si eliges Libro de Macros Personales, la macro va a estar disponible desde cualquier libro de Excel. Descripción Si quieres puedes poner un texto explicativo el cual se incluirá en el código de la macro. Presiona OK. Ahora la macro grabará todo lo que pase a tu libro de Excel. Si seleccionas celda H1, esa misma acción se grabará. Después, al ejecutar la macro, esa celda se selecionará (¡sorpresa...!). Entonces, mientras grabas, seleciona celda H1, cambia el formato a Número - 2 decimales. Paramos la grabación.

Pregunta 17 ¿Qué es una instrucción de asiganción compuesta? Las instrucciones de asignación compuesta realizan primero una operación en una expresión antes de asignarla a un elemento de programación. En el siguiente ejemplo se muestra uno de estos operadores, +=, que incrementa el valor de la variable del lado izquierdo del operador con el valor de la expresión de la derecha. n += 1 En el ejemplo anterior se suma 1 al valor de n y, a continuación, el nuevo valor se almacena en n. Es el equivalente abreviado de la siguiente instrucción:

n=n+1

Pregunta 18 Una instrucción ejecutable puede: a)realiza una acción. b)especificar un tipo de datos, e instrucciones ejecutables, que inician acciones. c)Proporciona un análisis de alto nivel de las instrucciones d)escribir varias instrucciones en una línea, continuar una instrucción en varias líneas, e)agregar comentarios y comprobar errores de compilación. f)Describe instrucciones que realizan operaciones de asignación (asignan el valor de la g)derecha del operador a la variable de la izquierda). h)Describe instrucciones que asignan nombre a procedimientos, variables, matrices y constantes, y los definen. i)Puede llamar a un procedimiento, bifurcar a otra parte del código, j)recorrer varias instrucciones con un bucle o evaluar una expresión

Pregunta 19 ¿Defina que es formularios y cuantos tipos existen? Se llama formulario a una plantilla o página con espacios vacíos que han de ser rellenados con alguna finalidad, por ejemplo una solicitud de empleo en la que has de rellenar los espacios libres con la información personal requerida. Existen tres tipos de formularios Formulario normal (FORM) Estos formularios trabajan de forma independiente en un proyecto y son los más utilizados Formulario padre (MDIForm) Sirve para la creación de interfaces de documentos múltiples (MDI) estos formularios se utilizan pera administrar a otros formularios que casi siempre son formularios hijos. Formulario hijo (Childform) Esto formularios en un aplicación se encuentran administrados por un único formulario pobre (MDIForm). Los formularios hijos se convienen de formularios normales a formularios hijos a través de la propiedad ( Childform)

Pregunta 20 ¿Que es programacion orientada a objetos, que es un objeto y ponga un ejemplo? La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes: Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Herencia: (por ejemplo, herencia de la clase D a la clase C) Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos

atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de OOP. Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase. Método: Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema. Evento: Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera. Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método. Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase. Componentes de un objeto:atributos, identidad, relaciones y métodos. Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes. En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

Pregunta 21 ¿Explique si Visual Basic es un lenguaje de programación orientado a objetos? Visual Basic para aplicaciones en efecto es un lenguaje de programacion que se encuentra orientado a objetos, puesto que los compomentes, controles...etc que utiliza los usa como

objetos, pero no tiene implementada las características basicas (herencia y polimorfismo ) de la orientación a objetos para crear tus propias clases, en todo caso, en VB se puede "simular estas dos caracteristicas" pero eso no hace que sea un lenguaje realmente orientado a objetos Por lo tanto Visual Basic utiliza objetos pero no es orientado a objetos

Pregunta 22 ¿Enumere 6 Tipos de Variables o Datos de Visual Basic? BOOLEAN Sólo admite 2 valores de verdad o lògicos que son : TRUE , FALSE. INTEGER admite valores entre -32768 y 32767. DOUBLE admite valores decimales de doble precisión. CURRENCY válido para valores de tipo moneda. STRING cadenas de caracteres. DATE fechas, permite operar con ellas.

Pregunta 23 COMMAND BUTTON Es el control principal de la forma, contiene el código principal del programa y su activación por el usuario provoca que se realicen los principales procesos del problema planteado (aquí es donde se capturan datos, se realizan operaciones, etc.). De este control se maneja su propiedad Caption para etiquetarlo con la palabra “OK” o “ACEPTAR” o “EXE” , y su evento Click para activarlo, es en dicho evento donde se construye el código del programa. Este botón también puede activar su evento Click, cuando el usuario presione la tecla , solo poner la propiedad Default en true, en este caso el botón de ordenes, se le conoce como botón de default. Igualmente puede activar su evento Click cuando el usuario, presione la tecla , solo poner la propiedad Cancel en true, a este caso se le conoce como “CANCEL BUTTON”. También puede mostrar un icono o imagen gráfica, primero poniendo su propiedad style = 1 (gráfico) y luego usando su propiedad picture para buscar una imagen adecuada.

Igualmente también puede usarse como un botón de salida o terminación o exit del programa, solo cargando la instrucción END en su evento click, como en el siguiente ejemplo en visual basic Private Sub Command1_Click() End End Sub ESTE CODIGO SIRVE PARA SALIR DEL PROGRAMA

Un objeto En Visual Basic Un objeto es definido como una combinación entre el código y los datos que puede tratarse como una unidad. Un objeto puede ser considerado una porción de una aplicación, como un control o un formulario. Una aplicación entera también podria ser considerada como un objeto.

Los objetos permiten declarar variables y procedimientos una vez y utilizarlos siempre que sean necesarios. Por ejemplo, si desea agregar un corrector ortográfico a una aplicación, puede definir todas las variables y funciones auxiliares para proporcionar funcionalidad de corrección ortográfica. Si crea el corrector ortográfico como una clase, puede volver a utilizarlo en otras aplicaciones mediante la inclusión de una referencia en el ensamblado compilado. Aún mejor, tal vez pueda ahorrarse trabajo mediante el uso de una clase de corrector ortográfico que otra persona ya haya desarrollado. Las referencias a propiedades and métodos con frecuencia requieren un calificador de objeto explícito. Las causas y posibles soluciones de este error son las siguientes:

Dim RetVal ' Variant implícita. ' La propiedad predeterminada se asigna a la Variant ' ValRet de RetVal = CreateObject("Excel.Application") RetVal.Visible = True ' Aquí ocurre el error.

Tipo 8.

Utilice la instrucción Set al asignar una referencia de objeto. En casos extraños, este error se produce cuando tiene un objeto válido, pero está intentando ejecutar una acción no válida en el objeto. Por ejemplo, puede recibir este error si intenta asignar un valor a una propiedad de sólo lectura. Compruebe la documentación del objeto y asegúrese de que la acción que intenta ejecutar es válida.

Cada formulario, menú o control que se crea es un módulo autocontenido llamado objeto. Los bloques básicos de construcción de una aplicación con Visual Basic son los objetos. Cada objeto tiene un conjunto de características y un comportamiento definido (propiedades, métodos y eventos) que lo diferencian de otros tipos de objeto.

ENTORNO DE PROGRAMACION El lenguaje de programación que utiliza Excel para trabajar con macros es el VBA (Visual Basic Application) que como podemos deducir está basado en Visual Basic.

El menú del editor de Visual Basic: Esta es la barra de menú del editor de Visual Basic donde podemos acceder a las diversas opciones y comandos del propio editor.

La barra de botones: Esta es la barra de botones de Visual Basic, donde podemos acceder de una manera más rápida a las opciones más comunmente utilizadas, como son la ejecución, la parada, guardar, etc... En la parte izquierda de la pantalla podemos ver dos recuadros, el

recuadro superior es el del proyecto. Aquí se encuentran los módulos, las hojas utilizadas en los procedimientos/funciones, etc.

En la parte inferior tenemos otro recuadro, con las propiedades del objeto seleccionado. En esta imagen podemos ver las propiedades del objeto Hoja1 y que es una hoja de cálculo (Worksheet).

En la parte derecha tenemos el espacio dedicado a redactar el código de los procedimientos/funciones, y en la parte superior existen dos cuadros combinados donde podemos seleccionar los objetos y los métodos de ese objeto respectivamente.

PARA QUE NOSOTROS PODAMOS ENTENDER TODAS LAS CLASES DE INSTRUCCIONES DEBEMOS COMENZAR SABIEDNDO Y COMPRENDIENDO QUE SON LASINSTRUCCIONES EN VISUAL BASIC PARA APLICACIONES En Visual Basic, una instrucción es una comando completo que puede contener palabras clave, operadores, variables, constantes y expresiones. Las instrucciones se clasifican en dos categorías: instrucciones de declaración, que asignan nombre a una variable, constante o procedimiento, y también pueden especificar un tipo de datos, e instrucciones ejecutables, que inician acciones.

NOSOTROS PODEMOS ENCONTRAS ALGUNA INFORMACION GENERAL A CERCA DE LAS INSTRUCCIONES COMO SON LAS SIGUIENTES: En Visual Basic, una instrucción es una instrucción completa. Puede contener palabras clave, operadores, variables, constantes y expresiones. Cada instrucción pertenece a una de las categorías siguientes: • Instrucciones de declaración, que dan nombre a una variable, constante o procedimiento y también pueden especificar un tipo de datos. • Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden llamar a un método o función, y pueden recorrer bloques de código o bifurcar a otro bloque de código. Las instrucciones ejecutables incluyen instrucciones de asignación, que asignan un valor o expresión a una variable o constante. instrucciones ejecutables incluyen instrucciones de asignación, que asignan un valor o expresión a una variable o constante.

Elementos de un programa de Visual Basic Elementos de programacion en VBA Hay tres tipos de estructuras básicas que son muy utilizadas en la programación de un algoritmo: - La estructura secuencial - La estructura condicional - La repetitiva.

Los Elementos básicos de programación son los que se mencionan a continuacion: ALGUNOS DE LOS ELEMENTOS DE PROGRAMACION SON : Elementos de programación en el nivel de archivo

Al iniciar un proyecto o archivo y abrir el editor de código, verá que ya hay código en el lugar que le corresponde y en el orden correcto. Cualquier código que escriba debe seguir la siguiente secuencia: 1.Instrucciones Option 2.Instrucciones Imports 3.Instrucciones Namespace y elementos del nivel de espacio de nombres Si escribe instrucciones en un orden distinto, pueden producirse errores de compilación. Un programa también puede contener instrucciones de compilación condicional. Pueden incluirse en el archivo de código fuente entre las instrucciones de la secuencia anterior. Instrucciones Option Las instrucciones Option establecen reglas de base para el código subsiguiente, y de esta forma ayudan a prevenir errores de sintaxis y de lógica. Instrucción Option Explicit (Visual Basic) garantiza que se declaran todas las variables y que se escriben correctamente, lo que reduce el tiempo de depuración. Instrucciones Imports Puede incluir Imports (Instrucción) para importar nombres definidos fuera del proyecto. Las instrucciones Imports permiten que el código haga referencia a clases y otros tipos definidos en el espacio de nombres importado sin tener que calificarlos. Puede utilizar tantas instrucciones Imports como sea necesario. Instrucciones Namespace Los espacios de nombres ayudan a organizar y clasificar los elementos de programación para facilitar la agrupación y el acceso. Utiliza Namespace (Instrucción) para clasificar las instrucciones siguientes dentro de un espacio de nombres determinado. Elementos de programación en el nivel de espacio de nombres Las clases, estructuras y módulos contienen todo el código del archivo de código fuente. Son elementos del nivel de espacio de nombres, que pueden aparecer dentro de un espacio de nombres o en el nivel del archivo de código fuente. Contienen las declaraciones de todos los demás elementos de programación. Las interfaces, que definen firmas de elemento pero no proporcionan ninguna implementación, también aparecen en el nivel de módulo. Para obtener más información sobre los elementos del nivel de módulo, vea los siguientes temas: •Instrucción Class (Visual Basic) •Structure (Instrucción) •Module (Instrucción) •Instrucción Interface (Visual Basic)

Los elementos de datos en el nivel de espacio de nombres son las enumeraciones y los delegados. Elementos de programación en el nivel de módulo Los procedimientos, operadores, propiedades y eventos son los únicos elementos de programación que pueden contener código ejecutable (instrucciones que realizan acciones en tiempo de ejecución). Son elementos del nivel de módulo del programa. Para obtener más información sobre los elementos del nivel de procedimiento, vea los siguientes temas: •Instrucción Function (Visual Basic) •Instrucción Sub (Visual Basic) •Declare (Instrucción) •Operator (Instrucción) •Property (Instrucción) •Event (Instrucción) Los elementos de datos en el nivel de módulo son las variables, las constantes, las enumeraciones y los delegados. Elementos de programación en el nivel de procedimiento La mayoría del contenido de los elementos del nivel de procedimiento son instrucciones ejecutables, que constituyen el código en tiempo de ejecución del programa. Todo el código ejecutable debe estar incluido en algún procedimiento (Function, Sub, Operator, Get, Set, AddHandler, RemoveHandler, RaiseEvent). Para obtener más información, vea Instrucciones ejecutables. Los elementos de datos en el nivel de procedimiento se limitan a las constantes y las variables locales. Procedimiento Main El procedimiento Main es el primer código que se ejecuta cuando se carga la aplicación. Main actúa como punto de inicio y control global de la aplicación. Hay cuatro variedades de Main: •Sub Main() •Sub Main(ByVal cmdArgs() As String)

•Function Main() As Integer •Function Main(ByVal cmdArgs() As String) As Integer La variedad más común de este procedimiento es Sub Main() v Notación BNF Elemento_no_terminal: Este estilo se emplea para escribir el nombre de un elemento gramatical que habrá de ser definido por algún regla. Cualquier elemento a la izquierda del metasímbolo ::= será no terminal y aparecerá con est estilo. Elemento_terminal: Est estilo se emplea para representar los elementos que forman parte del lenguaje Modula2, es decir, que constituyen l texto de un programa. Si aparecen en 1 regla deberán escribirse exactamente como se indica. Un elemento declarado es 1 elemento de programación q se define en una instrucción de declaración. Admitida a elementos incluyen variables, constantes, enumeraciones, clases, estructuras, módulos, interfaces, procedimientos, parámetros de procedimiento, función devuelve, referencias externas procedimiento, operadores, propiedades, eventos y delegados. VALORES Y TIPOS: o Valores numéricos enteros: o valor_entero ::= [+ | - ] secuencia_de_dígitos o secuencia_de_dígitos ::= dígito {dígito} o dígito ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 o Valores numéricos reales: o valor_real ::= valor_entero.[secuencia_dígitos][escala] o escala::= E valor _entero o Caracteres: o Identificador ::= letras {letra | dígito}

o letra::= {a | b | c | d | e | f | g | h | i | j | k | l | m | n | ñ | o | p | q | r | s | t | u | v | w | x | y | z} o dígito::= {1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0} TIPOS PREDEFINIDOS: o INTEGER o Los valores de este tipo son los valores numéricos enteros positivos y negativos. o Coincide con el concepto matemático de números enteros. o El rango depend del computador concreto utilizado, SIEMPRE simétrico entorno al cero. o Dentro de dicho rango la representación es exacta o Los rangos son: o 2^15 = 32768 o 2^31 = 2147483648 o Valor mínimo; MIN (INTEGER) o Valor máximo; MAX (INTEGER) o Operadores: o Suma de enteros A + B o Resta de enteros A - B o Multiplicación de enteros A {*} B o División de enteros A DIV B o Resto de entero A MOD B o Identidad de un entero + A o Cambio de signo de un entero - A o La division se realiza entre 2 numeros enteros y obtiene el cociente entero truncado al valor mas proximo a cero o MOD puede estar SOLO definido para divisores positivos. o El resultado es el resto de la division de enteros realizadas con DIV

o CARDINAL o Representa valores numéricos enteros no negativos o No es muy utilizada por los lenguajes de programación. Modula-2 permite el doble de valores positivos o Forma general del rango es: 0, MAX (CARDINAL) o Emplea los mismos operadores que para los enteros o Las operaciones entre cardinales SOLO se da entre cardinales. o Si queremos realizar operaciones combinadas es necesario que previamente se realice una conversión de la representación delos datos al tipo adecuado. o En algunas versiones de Modula-2, FLOAT y TRUNC solo realzan las conversiones entre valores de los tipos REAL y CARDINAL, en lugar de REAL e INTEGER. o FLOAT (45) Representa el valor real 45.0 o TRUNC (34.7) Representa el valor entero 34 o REAL: o Representa los valores numéricos reales positivos y negativos. o Esta representación puede no ser exacta, así que solo se puede considerar valido dentro de un rango. o El rango como la precisión depende del computador concreto utilizado, aunque nunca será posible una representación de valores irracionales (e, pi) o cuya precisión sea superior a la disponible en el computador que utilizamos. o Operaciones: o Suma de reales A + B o Resta de reales A - B o Multiplicación de reales A * B o División de reales A / B o Identidad de reales + A

o Cambio de signo de reales - A o Las operaciones entre reales dan como resultado un real con la precisión del computador o CHAR: o Este tipo incluye como valores todos los caracteres disponibles en un computador. o La tabla de caracteres ASCII incluye caracteres alfabéticos, numéricos, de puntuación y puede incluir también caracteres de control (salto de línea). o Para representar estos caracteres se utiliza la notación CHR (x) siendo x el código del carácter equivalente a su posición dentro de la tabla de todos los caracteres. o CHR (10); Representa el salto de línea. Posición 10 de la tabla o CHR (13); Representa el retorno de carro. Posición 13 de la tabla o En sentido inverso, la posición que ocupa un determinado carácter c dentro de la tabla se expresa como ORD(c). o ORD (A); Vale 65 (65 posición de la taba ASCII) o ORD (Z); Vale 90 (90 posición de la tabla ASCII) o De forma inmediata podemos decir: o CHR (ORD (c) ) = c o ORD (CHR (x) ) = x La mayoría de las tablas de códigos de carácteres poseen las siguientes características: o Los caracteres correspondientes a las letras mayúsculas de la A a la Z están ordenados en posiciones consecutivas y crecientes según el orden alfabético o Los caracteres correspondientes a las letras minúsculas de la a a la z están ordenados en posiciones consecutivas y crecientes según el orden alfabético o Los caracteres correspondientes a los dígitos del 0 al 9 están ordenados en posiciones consecutivas y crecientes. o Esto facilita el obtener por calculo el valor numérico equivalente al carácter de un dígito decimal, o la letra mayúscula correspondiente a una minúscula o viceversa.

Estructura de un programa completo: MODULE EscribirHola; (* Este programa escribe Hola*) FROM InOut IMPORT WriteString, WriteLn; BEGIN WriteString ('Hola'); WriteLn;

END EscribirHola. El texto del programa comienza con una cabecera en la que después de la palabra MODULE, se pone el nombre que le damos al módulo de programa. A continuación se declara la lista de elementos importados de otros módulos. Esta lista de importados puede estar vacía si no se necesita ninguna colaboración de otros módulos. En la lista de importados se indica desde que modulo se importan los elementos y la lista de elementos que se quieren importar, usando las palabras inglesas, FROM e IMPORT. La parte final del programa contiene las sentencias ejecutables correspondiente a las acciones a realizar, escritas entre las palabras inglesas BEGIN y END. Las diferentes partes del programa se separan una de otra mediante ( . Al final del texto del programa se repite el nombre del módulo como comprobación y se acaba con un (.) Descripción formal de la estructura de un programa: o Módulo_programa ::= Cabecera_programa Bloque Nombre_programa o Cabecera_programa ::= MODULE Nombre_programa; {Lista_importados;} o Lista_importados ::= FROM Nombre_módulo IMPORT Lista_elementos}} o Lista_elementos ::= Nombre_elemento {, Nombre_elemento} La estructura de un bloque solamente puede indicarse de momento en forma simplificada, ya que solo se han visto los elementos mínimos necesarios para escribir un programa. o Bloque ::= Parte_ejecutiva END o Parte_ejecutiva ::= BEGIN Secuencia_de_sentencias o Secuencia_de_sentencias ::= Sentencia {; Sentencia} o Uso Comentarios: o Cabeceras de programas o Cabeceras de sección Comentario de Sección o Comentarios-orden (*-- Aquí cuentas lo que esta haciendo la orden siguiente --*) o Comentarios al margen (* A la izquierda tienes el código que estas utilizando y esto a la dcha*) Descripción formal de la estructura de un programa o Bloque ::= Parte_declarativa Parte_ejecutiva END o Parte_declarativa ::= {Declaración} o Declaración ::= Declaración_de_constantes | Declaración_de_variables o Parte_ejecutiva ::= BEGIN Secuencia_de_sentencias o Secuencia_de_sentencias ::= Sentencia {Sentencias;}

Las instrucciones de declaración incluyen lo siguiente: Instrucción Dim (Visual Basic) Instrucción Const (Visual Basic) Instrucción Enum (Visual Basic)

Instrucción Class (Visual Basic) Structure (Instrucción) Module (Instrucción) Instrucción Interface (Visual Basic) Instrucción Function (Visual Basic) Instrucción Sub (Visual Basic) Declare (Instrucción) Operator (Instrucción) Property (Instrucción) Event (Instrucción) Delegate (Instrucción) Al igual que con cualquier lenguaje de programación moderno, Visual Basic admite un gran número de constructores comunes de programación y elementos de lenguaje. Los elementos básicos de la programación con Visual Basic son: • Comentarios • Constantes • Variables • Sentencias • Procedimientos • Módulos • Proyectos • Punto de inicio del programa Rem Esto es un comentario ‘Esto es un comentario--- IT`S A COMMENTARY Ejemplo En este ejemplo se muestran comentarios que ocupan una línea de código fuente completa, parte de una línea y más de una línea. ' This entire line is a comment. o en español:

'Esta linea de codigo es completamente un comentario.

Dim DailyTotal As Decimal = 0 ' Sales total for today(Ventas Totales Del Dia) ' This comment is so long that it requires more than one line, so ' the comment character (') must be repeated on the second line o en español: 'este comentario es demasiado largo que requiere mas de una linea,entonces 'el simbolo para comentario(´)debe ser utilizado en la segunda linea de codigo

Sentencias de Control Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones y realizar un proceso repetidas veces. Visual Basic dispone de las siguientes estructuras: - If...Then. - If...Then...Else. - Select case. - For... Next. - While...Wend. - Do...loop. - Goto. SELEC CASE Estructura General: Select Case dato Case valor1 bloque de sentencias case valor2 bloque de sentencias Case valor3 bloque de sentencias case else bloque de sentencias, se ejecutan si no se cumple ninguno de los valores anteriores End Select

En esta construcción, dependiendo del valor de la variable dato se ejecutará un bloque de sentencias diferente. Los valores que podemos colocar en lugar de valor1, valor2, valor3 no sólo se limitan a valores constantes como números y cadenas de texto, sino que podemos comparar con un número como podemos ver en el siguiente ejemplo: Select Case NotaFinal Case Is < 5 Suspendido Case 5 to 6.99 Aprobado Case 7 to 8.99 Notable Case Else Sobresaliente End Select

SENTENCIA IF Permite tomar una decisión referente al camino a seguir o acción a ejecutar en un proceso basándose en el resultado (verdadero o falso) de una condición. Su sintaxis es: If condición then acción1 [else acción2] donde condición debe ser una expresión numérica, relacional o lógica. Si la condición es verdadera se ejecuta la acción1 y si es falsa se ejecutará la acción2. SENTENCIA SELECT Esta expresión permite ejecutar una de varias acciones en función del valor de una expresión. Es una alternativa a If... Then ... ElseIf cuando lo que se necesita es comprobar es la misma expresión con diferentes valores. Su sintaxis es: selec case expresion case lista1 sentencias case lista2 sentencias case else sentencias n

end select donde expresión es una expresión numérica o alfanumérica, y lista1 y lista2.... representan una lista que puede tener cualquiera de las formas siguientes: expresión[,expresión]... expresión to expresión Is operador-de-relación expresión combinación de las anteriores separadas por comas SENTENCIA THEN =sentencia SENTENCIA ELSE =sentencia

SENTENCIA FOR... NEXT La sentencia for da lugar a un bucle que permite ejecutar un conjunto de sentencias cierto número de veces. Su sintaxis es: for variable = expresion1 to expresion2[Step expresion3] [sentencias] [Exit for] [sentencias]

Next [variable[,variable...]] Cuando se ejecuta una sentencia For en la que el valor de la expresión3 es positivo o no se ha especificado, primero se ha asigna el valor de la expresión1 a la variable y a continuación se comprueba si la variable es mayor que la expresión 2, en cuyo caso se salta el cuerpo del bucle y se continúa en la línea que éste a continuación de la sentencia Next. En otro caso, se ejecutan las línea sde programa que haya entre la sentencia For y la sentencia Next. Por último, la variable, se incrementa en el valor de la expresión3, o en 1 si Step no se especifica, volviéndose a efectuar la comparación entre la variable y la expresión2, y así sucesivamente. SENTENCIA WHILE... WEND Un bucle While repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta. La condición se verifica antes de ejecutarse el conjunto de sentencias. While condicion [sentencias] Wend

Donde condición es cualquier expresión numérica, relacional o lógica. La ejecución de la sentencia While sucede así: 1.- Se evalúa la condición. 2.- Si el resultado de la evaluación es falso, las sentencias que forman el cuerpo de While no se ejecutan y se pasa el control a la siguiente sentencia en el código a Wend. 3.- Si el resultado de la evaluación es verdadero, se ejecutan las sentencias que forman el cuerpo de While y el proceso descrito se repite desde el punto 1. SENTENCIA DO... LOOP Un Loop(bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o basta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias: Formato1 Formato2 Do [{While|Until}condición] [sentencias] [Exit do] [sentencias]

Loop Do

[sentencias] [Exit do] [sentencias]

Loop[{While|Until}condición] Donde condición es cualquier expresión que se evalúe a True o a False. SENTENCIA GOTO Transmite el control a una línea específica del código, identificada por una etiqueta o por un número de línea. Su sintaxis es: Goto {etiqueta/nº de línea} Si la línea a la que se transfiere el control es una sentencia ejecutable, se ejecuta esa sentencia y las que le siguen. Si no es ejecutable, la ejecución se inicia en la primera sentencia ejecutable que se encuentra tras dicha línea. Todo programa estructurado tiene sentencias de control básicas, que todos los lenguajes de programación lo tienen, los mismos que se describen a continuación: Estructura Secuencial: Donde el control pasa de una sentencia a la siguiente. Estructuras Selectivas: Que nos permite de acuerdo a una condición tomar un camino u otro. Estructuras Repetitivas: En donde un conjunto de acciones se repiten un cierto número de veces. Estructura Secuencial La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:

Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos: • Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella: Asignación

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma: * Simples: Consiste en pasar un valor constante a una variable (a 15) * Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a a + 1) * Acumulador: Consiste en usarla como un sumador en un proceso (a a + b) * De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a c + b*2/4).

En general el formato a utilizar es el siguiente: < Variable > El símbolo debe leerse “asigne”. Escritura o salida de datos Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: Lectura o entrada de datos La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: DECLARACION DE VARIABLES Y CONSTANTES La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es. Contador: ENTERO Edad, I: ENTERO Direccion : CADENA_DE_CARACTERES Salario_Basico : REAL Opcion : CARACTER En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres. En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor.

CONSTANTE Pi 3.14159 CONSTANTE Msg “Presione una tecla y continue” CONSTANTE ALTURA 40 Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas. Estructuras Selectivas Este tipo de estructuras lógicas se encuentran en la solución de casi todas las aplicaciones.Las estructuras de selección se utilizan para tomar decisiones lógicas, por lo que también se les llama estructuras de decisión o alternativas. Se utiliza cuando el desarrollo de la solución de un problema debemos tomar una decisión, para ejecutar un proceso o tomar un camino alternativo a seguir.En las estructuras de selección se evalúa una condición y en función del resultado de la misma se realiza una serie de instrucciones u otra. Las condiciones se especifican utilizando expresiones lógicas. Se considera las siguientes estructuras selectivas:

* Selectiva Simple * Selectiva Doble * Selectiva Múltiple Selectiva Simple (If Then / End If)

Se identifican porque están compuestos únicamente de una condición. La estructura si entonces evalúa la condición y en tal caso: Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias). Si la condición es falsa, entonces no se hace nada. Español Inglés Si If Entonces then fin_si endif

Ejemplo 1. Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba “Aprobado” en caso que esa calificación fuese mayor que 8.

Salidas: mensaje de aprobado si se cumple la condición. Entradas:' calificación Datos adicionales: un alumno aprueba si la calificación es mayor que 8 Variables: Cal = calificación Algoritmo: Inicio Leer (cal) Si cal > 8 entonces Escribir (“aprobado”) Fin_si Fin

Permite tomar una decisión referente al camino a seguir o acción a ejecutar en un proceso basándose en el resultado (verdadero o falso) de una condición. FORMATO A: Cuando la alternativa tiene una sola sentencia. If exp_log Then sentencia End if

Cuando el resultado de la exp_log es verdadera se ejecuta la sentencia, si la exp_log es falsa no se ejecuta la sentencia. FORMATO B: La aletrnativa verdad tiene varia sentencias. If exp_log Then sentencia 1 sentencia 2 - - - - - sentencia n End If

Comentarios La selección simple (xlNone) sólo permite seleccionar un elemento a la vez. Al hacer clic con el mouse (ratón) o presionar la barra espaciadora se cancela la selección y se selecciona el elemento en el que se ha hecho clic.

La multiselección simple (xlSimple) cambia la selección de un elemento de la lista cuando se hace clic en él con el mouse o cuando se presiona la barra espaciadora y el elemento tiene el foco. Este modo es apropiado para listas en las que suele haber varios elementos seleccionados. La multiselección extendida (xlExtended) suele comportarse como la selección simple, en la que, al hacer clic en un elemento, se cancelan todas las demás selecciones. Cuando se mantiene presionada la tecla MAYÚS mientras se hace clic con el mouse o se presiona una tecla de dirección, los elementos se seleccionan consecutivamente a partir del elemento seleccionado. Cuando se mantiene presionada la tecla CTRL mientras se hace clic con el mouse, se agregan elementos individuales a la selección de la lista. Este modo es apropiado cuando se permiten múltiples elementos pero no se utilizan con frecuencia. Ejemplo En este ejemplo se crea un cuadro de lista de multiselección simple. Visual Basic para aplicaciones Set lb = Worksheets(1).Shapes.AddFormControl(xlListBox, Left:=10, Top:=10, Height:=100, Width:100) lb.ControlFormat.MultiSelect = xlSimple

Cuando la exp_log da como resultado verdad se ejecuta el bloque de sentencias desde sentencia 1 hasta sentencia n. Cuando el resultado es falso no se ejecuta el bloque de sentencias y el control del programa salta a la sentencia 4. Selectiva Doble (If Then / Else / End If)

FORMATO A: Cuando se tiene una sentencia por cada alternativa. If exp_log Then sentencia1 Else sentencia2 End If sentencia3

La expresión exp_log puede dar como resultado un valor verdadero (1) o falso (0). Cuando la exp_log es verdad se ejecuta la sentencia 1 y el control del programa salta a la sentencia 3. Cuando la exp_log es falsa se ejecuta la sentencia 2 y continua en la sentencia 3. FORMATO B: Cuando tenemos varias sentencias por la alternativa verdadera y una sentencia por la alternativa falsa. If exp_log Then sentencia1 sentencia2

sentencia3 Else sentencia4 End If sentencia5

FORMATO C: Cuando tenemos una sentencia por la alternativa verdadera y varias sentencias por la alternativa falsa. If exp_log Then sentencia1 Else sentencia2 sentencia3 sentencia4 End If sentencia5

En esta estructura cuando la exp_log es verdadera, se ejecuta la sentencia 1 y el control del programa salta a la sentencia 5. Cuando la exp_log es falsa se ejecuta el grupo de sentencias desde la sentencia 2 hasta la sentencia 4 y continua en la sentencia 5. FORMATO D: Cuando se tiene varias sentencias por la alternativa verdadera y varias sentencias por la alternativa falsa. If exp_log Then sentencia1 sentencia2 sentencia3 Else sentencia4 sentencia5 sentencia6 End If sentencia7

En esta estructura cuando la exp_log es verdadera se ejecuta el grupo de sentencias desde la sentencia 1 hasta la sentencia 3 y el control del programa salta a la sentencia 7. Cuando exp_log es falso se ejecuta el grupo de sentencias desde la sentencia 4 hasta la sentencia 6 y continua en la sentencia 7.

- Select case - For... Next - While...Wend - Do...loop - Goto - Then - Else - End If Selectiva Múltiple (Select Case / Case else / End Select)

Esta expresión permite ejecutar una de varias acciones en función del valor de una expresión. Es una alternativa a If... Then ... ElseIf cuando lo que se necesita es comprobar es la misma expresión con diferentes valores. Su sintaxis es:

Select Case expresionX Case expresión1 sentencias bloque1 Case expresión2 sentencias bloque2 Case expresión3 sentencias bloque3 . . Case Else sentencias bloque Else End Select

En esta estructura, expresionX puede ser una variable numérica, cadena de caracteres o una condición, la misma q es evaluada una sola vez al inicio de la estructura y comparada con las expresiones (expresión1, expresión2, expresión3....) para ejecutar el bloque de sentencias respectivo cuando son iguales. expresión1, expresión2, expresión3,.... expresiónN representan la lista de los posibles valores que pueden tomar la expresiónX. Cada bloque de sentencias puede tener uno o mas líneas de códigos que son ejecutadas y cuando el valor de la expresiónX no coincide con ninguno de la expresión1, expresión2,.... expresiónN se ejecuta el bloque de sentencias correspondientes. La multiselección extendida (xlExtended) suele comportarse como la selección simple, en la que, al hacer clic en un elemento, se cancelan todas las demás selecciones. Cuando se mantiene presionada la tecla MAYÚS mientras se hace clic con el mouse o se presiona una tecla de dirección, los elementos se seleccionan consecutivamente a partir del elemento seleccionado. Cuando se mantiene presionada la tecla CTRL mientras se hace clic con el mouse, se agregan elementos individuales a la selección de la lista. Este modo es apropiado cuando se permiten múltiples elementos pero no se utilizan con frecuencia. expresión to expresión Is operador-de-relación expresión combinación de las anteriores separadas por comas Estructuras Repetitivas Sentencia For... NexT La sentencia for da lugar a un bucle que permite ejecutar un conjunto de sentencias cierto número de veces. Su sintaxis es: for variable = expresion1 to expresion2[Step expresion3] [sentencias] [Exit for] [sentencias]

Next [variable[,variable...]] Es muy común encontrar en las aplicaciones que una sentencia o un grupo de sentencias se

debe ejecutar un número determinado de veces. Las sentencias son las mismas, pero los datos con los que operan varían. El conjunto de sentencias que operan repetidamente se llama bucle, ciclo o lazo. El bucle es una secuencia de sentencias que se repiten mientras se cumple una condición que controla las iteraciones. Una iteración es un conjunto de sentencias que se repiten en el interior del bucle por lo que a las estructuras repetitivas también se les conoce como estructuras iterativas. Cuando se ejecuta una sentencia For en la que el valor de la expresión3 es positivo o no se ha especificado, primero se ha asigna el valor de la expresión1 a la variable y a continuación se comprueba si la variable es mayor que la expresión 2, en cuyo caso se salta el cuerpo del bucle y se continúa en la línea que éste a continuación de la sentencia Next. En otro caso, se ejecutan las línea sde programa que haya entre la sentencia For y la sentencia Next. Por último, la variable, se incrementa en el valor de la expresión3, o en 1 si Step no se especifica, volviéndose a efectuar la comparación entre la variable y la expresión2, y así sucesivamente. La sentencia exit for permite salir del bucle for... next antes de que este finalice. Sentencia While... Wend Un bucle While repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta. La condición se verifica antes de ejecutarse el conjunto de sentencias. While condicion [sentencias] Wend

Donde condición es cualquier expresión numérica, relacional o lógica. La ejecución de la sentencia While sucede así: 1.- Se evalúa la condición. 2.- Si el resultado de la evaluación es falso, las sentencias que forman el cuerpo de While no se ejecutan y se pasa el control a la siguiente sentencia en el código a Wend. 3.- Si el resultado de la evaluación es verdadero, se ejecutan las sentencias que forman el cuerpo de While y el proceso descrito se repite desde el punto 1. ............ Sentencia Do... LoopUn Loop(bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o basta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias: Formato1 Formato2 Do [{While|Until}condición] [sentencias] [Exit do] [sentencias]

Loop Do [sentencias] [Exit do] [sentencias]

Loop[{While|Until}condición] Donde condición es cualquier expresión que se evalúe a True o a False

Sentencia es una orden que se le da ala computadora para que ejecute una acción determinada. Un programa de VISUAL BASIC consta de sentencias que le dice a la maquina las funciones que debe realizar . Sentencias condicionales. Llamamos sentencias condicionales a aquellas que se realizan si se cumple una determinada condición. Son las sentencias por las que empieza cualquier texto de Basic, y este no va ser menos. La sentencia condicional mas usada es: Si se cumple una condición Entonces Realiza estas instrucciones Si no se cumple Realiza estas otras instrucciones Fin de la sentencia. Así de fácil es programar en Basic. Lo que ocurre es que esta herramienta habla inglés, y lo descrito anteriormente toma la forma: If condición Then Instrucciones Else Otras instrucciones End If En este ejemplo, la condición era que, o se cumple una condición y ejecuta unas determinadas instrucciones, o no se cumple, y ejecuta otras condiciones distintas. Puede ocurrir que, caso de no cumplirse la condicione primera, se abra un abanico de dos o tres posibilidades. La sentencia condicional tendría entonces la forma:

If condición 1 Then Instrucciones Else If Condición 2 Otras instrucciones Else If Condición 3 Otro juego de instrucciones Else Instrucciones que debe realizar caso de no cumplir las condiciones 1, 2 y 3. End If Como decíamos anteriormente, este es el tipo de sentencia condicional mas usada. Existe otra: Select Case Su nombre casi nos define lo que es: Selecciona, dependiendo del caso, un determinado juego de instrucciones: Select Case variable ' variable es una variable que puede tomar los valores (p.e.) de 1 a 4 Case 1 Instrucciones a ejecutar en caso de que variable = 1 Case 2 Instrucciones a ejecutar en caso de que variable = 2 Case 3 Instrucciones a ejecutar en caso de que variable = 3 Case 4 Instrucciones a ejecutar en caso de que variable = 4 End Select Este procedimiento resulta mucho mas sencillo y rápido que las sentencias If Then Else vistas anteriormente, cuando el margen de elección es mayor que 2.

Cuando lo que queremos es elegir un valor, no ejecutar instrucciones como hacíamos anteriormente, disponemos de otras dos funciones: Choose y Switch. Switch toma una serie de parámetros, todos por parejas. El primer término de cada pareja es la expresión a evaluar. El segundo es el valor que tiene que devolver. En realidad Switch es una función (las funciones las veremos muy pronto) A = Switch (B=1, 5, B=2, 7, B=3, 11) Esta instrucción obtiene un valor para A que dependerá del valor que tome B entre los valores posibles (1, 2 ó 3) La sentencia Choose es casi igual, cambia solamente la forma. La misma intrucción anterior puede realizarse con Choose de la siguiente forma: A = Choose ( B, 5, 7, 11 ) En estas sentencias, Switch y Choose, si el valor de B no coincide con ninguno de los valores que se le habían establecido (1, 2 ó 3 en nuestro caso), la sentencia devuelve el valor Nulo ( Null ). Esto puede producir algún error si no se contempla esa posibilidad. Con estas sentencias condicionales es posible realizar bifurcaciones del programa, cambiar las propiedades de un objeto, obtener resultados de operaciones, .... Sentencias de bucle. Es muy común utilizar bucles a lo largo de un programa. Un bucle es una sucesión repetitiva de instrucciones, que se estarán realizando mientras se cumpla una condición o mientras no se cumpla otra condición. Es tan sencillo como esto:

Mientras condición Instrucciones Fin del bucle Existen dos formas de bucle: Una, que realiza un número determinado de recorridos por el bucle. Es el denominado bucle por contador. Otra, realiza el bucle hasta que se cumpla (o deje de cumplirse) una condición. Es el llamado bucle por condición. Bucle por contador Realiza el bucle tantas veces como le indiquemos. Por ejemplo, en este bucle nos va a presentar las 26 letras mayúsculas del alfabeto inglés

For N=65 To 90 Label1.caption = Chr ( N ) Next N Este "programa" nos presentará en una caja (Label) los caracteres cuyo número ASCII vaya desde el 65 (A) al 90 (Z) Comenzará presentando el correspondiente al número 65, e irá presentando sucesivamente el 66, el 67, etc., hasta llegar al 90, donde se parará. Bucles por condición Ejecuta las instrucciones del bucle mientras se cumple una condición X=0 Do While X < 1000 X=X+1 Loop Si lo que queremos es que el programa se ejecute mientras no se cumpla una determinada condición, la sentencia será: X=0 Do Until X > 1000 X=X+1 Loop Observe que la diferencia entre una y otra es la condición, While para indicar Mientras se cumpla que ... y Until para indicar Mientras no se cumpla que .... Para terminar bien el programa anterior utilizaremos la condición de While (Mientras se cumpla la condición) For N=65 To 90 Label1.caption = Chr ( N ) Label1.RefreshN ' Refresca la etiqueta X=0

Do While X < 1000 X=X+1 Loop Next N  

Procedimientos Un procedimiento es un bloque de instrucciones de Visual Basic incluido entre una instrucción de declaración (Function, Sub, Operator, Get, Set) y una declaración End correspondiente. En Visual Basic, todas las instrucciones ejecutables deben incluirse en algún procedimiento. los Procedimientos nos sirven para realizar una tarea concreta que probablemente se vaya a ejecutar varias veces a lo largo de la vida de la página. Esta tarea se especifica en un bloque de código de manera independiente y cuando se desean realizar las acciones. Una vez realizadas las acciones pertinentes se devuelve el flujo del programa al lugar desde donde se invocó ese procedimiento o función. Lo primero que debemos hacer al crear un procedimiento es pensar las cosas que se desean hacer dentro de la función, la información que necesitaremos (que tendremos que recibir como parámetros) y la información que devolverá.

Llamar a un procedimiento Los procedimientos se invocan desde otras partes del código. Esto se conoce como una llamada a procedimiento. Cuando finaliza la ejecución de un procedimiento, éste devuelve el control al código que lo invocó, que recibe el nombre de código de llamada. El código de llamada es una instrucción o una expresión contenida en una instrucción, que hace referencia al procedimiento por su nombre y le transfiere el control.

Volver de un procedimiento Los procedimientos devuelven el control al código de llamada cuando finalizan su ejecución. Para ello, puede utilizar Instrucción Return (Visual Basic), la instrucción Instrucción Exit (Visual Basic) apropiada para el procedimiento o la instrucción End

(Visual Basic) del procedimiento. El control se devuelve al código de llamada, a continuación del punto de la llamada al procedimiento. 

Con una instrucción Return, el control vuelve inmediatamente al código de llamada. No se ejecutan las instrucciones siguientes a la instrucción Return. Puede tener más de una instrucción Return en el mismo procedimiento.



Con una instrucción Exit Sub o Exit Function, el control vuelve inmediatamente al código de llamada. No se ejecutan las instrucciones siguientes a la instrucción Exit. Puede tener más de una instrucción Exit en el mismo procedimiento, y puede mezclar las instrucciones Return y Exit en el mismo procedimiento.



Si un procedimiento no incluye instrucciones Return o Exit, concluye con una instrucción End Sub o End Function, End Get o End Set a continuación de la última instrucción del cuerpo del procedimiento. La instrucción End devuelve el control inmediatamente al código de llamada. Puede tener sólo una instrucción End en un procedimiento.

Parámetros y argumentos En la mayoría de los casos, un procedimiento necesita funcionar en datos diferentes cada vez que lo llama. Puede pasar esta información al procedimiento como parte de la llamada al procedimiento. El procedimiento define cero o más parámetros, cada uno de los cuales representa un valor que el procedimiento espera que le pase. Cada parámetro de la definición del procedimiento cuenta con un argumento correspondiente en la llamada al procedimiento. Un argumento representa el valor que pasa al parámetro correspondiente en una llamada a procedimiento determinada.

Tipos de procedimientos Visual Basic utiliza varios tipos de procedimientos:' *Procedimientos Sub: ejecutan acciones pero no devuelven un valor al código de llamada. *Los procedimientos de control de eventos son procedimientos Sub que se ejecutan en respuesta a un evento provocado por una acción del usuario o por un suceso en un programa. *Procedimientos Function: devuelven un valor al código de llamada. Pueden realizar otras acciones antes de volver.

*Procedimientos de propiedad: devuelven y asignan valores de propiedades en objetos o módulos. *Procedimientos de operador: definen el comportamiento de un operador estándar cuando uno o los dos operandos son una clase definida recientemente o una estructura. *Procedimientos genéricos en Visual Basic: definen uno o varios parámetros de tipo además de sus parámetros normales, de forma que el código de llamada puede pasar tipos de datos específicos cada vez que realiza una llamada. Todas las líneas de código ejecutable de una aplicación deben encontrarse dentro de un procedimiento, por ejemplo, Main, calculate o Button1_Click. La aplicación se leerá con mayor facilidad si subdivide los procedimientos grandes en procedimientos más pequeños. Los procedimientos son útiles para realizar tareas repetitivas o compartidas, como cálculos de uso frecuente, manipulación de texto y controles, y operaciones con bases de datos. Se puede llamar a un procedimiento desde distintos lugares del código; de modo que los procedimientos se prestan a servir de unidades de creación de la aplicación. La estructuración del código en procedimientos aporta las siguientes ventajas: Los procedimientos permiten desglosar los programas en unidades lógicas independientes. Es más fácil depurar unidades individuales que todo un programa sin procedimientos. Después de desarrollar los procedimientos para el uso en un programa, puede utilizarlos en otros programas, a menudo con pocas o ninguna modificación. Esto ayuda a evitar la duplicación del código.

Variables Visual Basic, al igual que la mayoría de los lenguajes de programación, utiliza variables para almacenar valores. Una variable tiene un nombre (la palabra que se utiliza para referirse al valor que contiene la variable) y un tipo de datos (que determina la clase de datos que puede almacenar la variable). Una variable puede representar una matriz, si es necesario que almacene un conjunto indizado de elementos de datos estrechamente relacionados entre sí. Una variable es un lugar de almacenamiento con nombre que puede contener cierto tipo de datos (número, texto, fecha, etc.), que puede ser modificado durante la ejecución del programa. Cada variable tiene un nombre único que la identifica dentro de su nivel de ámbito. Puede especificar un tipo de datos o no. Los nombres de variable deben comenzar con un carácter alfabético, deben ser únicos dentro del mismo ámbito, no deben contener más de 255 caracteres y no pueden contener un punto o carácter de declaración de tipo.

Basic, desde siempre, al contrario de otros sistemas de programación, no exigió la definición previa de una variable. Una variable, como Vd. seguro que conoce, es un nombre que en el programa le asignamos a un dato. Ese dato podrá cambiar. Piense por ejemplo, en un programa consistente en la toma de datos de los alumnos de un centro escolar. Existirán varias variables para poder introducir los datos de los alumnos. Estas variables pueden tener nombre tales como: Nombre Apellido1 Apellido2 Dirección Teléfono DNI La variable Nombre tomará valores distintos según vayamos introduciendo los datos de los distintos alumnos. Es posible, que a lo largo de la ejecución del programa, esta variable Nombre valga: José Pedro María Luis Decíamos que Basic no exige la definición previa de las variables. Otras herramientas exigen que se haga así. Por lo tanto es normal encontrar, en otros sistemas de programación, que un programa comienza de la siguiente forma: Declare Nombre As String Le dice que Nombre es una sucesión de letras Declare Apellido1 As String Declare Apellido2 As String Declare Dirección As String Declare Teléfono As String Le dice que Teléfono es una sucesión de letras

Declare DNI As Número Le dice que DNI es un número Mediante estas declaraciones, el programa sabe de que tipo de dato se trata y por tanto cómo debe trabajar con él. En otros sistemas de programación distintos de Basic, es necesario realizar esta declaración antes de introducir una variable. Basic permite que no se declaren. Cuando a lo largo del programa le introducimos una variable nueva, asume que es una variable y que el tipo es el adecuado para el valor que le estamos introduciendo en ese momento. Por ejemplo, si Basic encuentra estas instrucciones DNI=50000000 Nombre ="Pedro" Teléfono = "1234567" entiende que DNI, Nombre y Teléfono son variables, que DNI es un número (No hemos metido su valor entre comillas), y que Nombre y Teléfono son sucesiones de caracteres alfanuméricos (su valor está entre comillas) Esta particularidad de no necesitar declarar las variables hace que sea sencillo introducir una variable nueva. Sin embargo entraña un gran peligro. Imagínese que en un paso posterior del programa, le mandamos escribir esos tres datos anteriores con la instrucción PRINT Print DNI Print Nombre Print Telwfono Habrá observado en tercer lugar la palabra Telwfono, que por error ha introducido el programador. Basic interpreta que Telwfono es una variable e irá a leer en memoria el valor que tiene. No tendrá ningún valor. Por lo tanto no escribirá nada y encima no dará ningún aviso de que se ha cometido un error. Nada es gratis en esta vida, y la facilidad para introducir variables se paga con la posibilidad de un error.

OPTION EXPLICIT Obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado antes de usarla, el programa dará una comunicación de error. Visual Basic, al igual q la mayoría de los lenguajes d programación, utiliza variables para almacenar valores.Una variable puede representar una matriz, si es necesario que almacene un conjunto indicando de elementos de datos estrechamente relacionados entre sí.

variable:es un espacio d memoria reservado para almacenar un valor q corresponda a un tipo de dato soportado por el lenguaje de programacion. cunado vamos a definir una variablese deb tener desiciòn en algunas caracterìsticas: El tipo de dato o datos:es decir q tipo de datos deb contener El perìodo de duraciòn: es decir cuanto tiempo debe continuar existiendo El ambito: se refiere a què codigo debe podert hacer referencia a èl sin calificaciòn en su nombre El nivel de acceso: refiere aquè codigo debe tener l permiso d lectura y escritura en ella Los enteros son números enteros, incluidos positivos, cero y negativos. Una variable contiene enteros si la declara como tipo Integer. puede contener enteros de -2.147.483,648 a 2.147.483,647. se puede utilizar Long, short, Sbyte, para contener puede utilizar Long, short, Sbyte para contener enteros EJEMPLO DE VARIABLES Y CONSTANTES • Tenemos una caja de fósforos con al menos 1 fósforo en su interior. • Abrimos la caja de fósforos. • Introducimos dedo pulgar e índice en la caja de fósforos. • Tomamos y sacamos un fósforo de la caja. • Sin soltar el fósforo, deslizamos su cabeza por el costado de la caja de fósforos. • El fósforo se enciende. Las Variables; se llaman así xq su valor cambia o varía durante los procesos del algoritmo. Toda variable tiene un nombre y un valor asociado. Ej: promedioFinal

Tipos de declaración de variables. Sentencia DIM Es la forma mas común de declarar una variable como Privada. Puede emplearse en un Procedimiento, Función, Formulario o Módulo. La sintaxis es de la siguiente forma: Dim nombrevariable As Integer(o el tipo que sea) Declarando una variable con la sentencia DIM, en un formulario, Función, procedimiento o módulo, el entorno de la variable será el explicado anteriormente para una variable declarada como Privada. Es decir, esa variable

no sale del formulario, procedimiento ó módulo donde se declaró. Cada vez que entremos al formulario, procedimiento o módulo, esa variable tomará el valor cero (si es numérica) o nulo (si es string). Sentencia PRIVATE Es la forma de declarar una variable como Privada. Puede emplearse solamente en la sección de declaraciones de un Formulario o Módulo. La sintaxis es de la siguiente forma: Private nombrevariable As Tipovariable Declarando una variable mediante la sentencia PRIVATE en un Formulario o Módulo, esa variable puede usarse en todo ese Formulario o Módulo (En todos sus Procedimientos y Funciones), pero NO fuera del Formulario o Módulo donde se declaró. La sentencia Private no puede usarse en un procedimiento o función. Publicnombrevariable As Tipovariable Declarando una variable de esta forma en la sección de declaraciones de un Módulo, esa variable puede usarse en cualquier parte del programa citándola simplemente por su nombre. Si se declara de esta forma en la sección de declaraciones de un Formulario, esa variable puede usarse en toda el programa. Para nombrarla, si estamos en el Formulario donde se declaró basta con citarla por su nombre. Si no estamos en ese Formulario, habrá que citarla por el nombre del Formulario, seguido del nombre de la variable, separados por un punto : NombreFormulario.Nombrevariable En un Módulo puede usarse también la sentencia Global en vez de Public : Sentencia GLOBAL Declara una variable que es válida en todo el programa. La sintaxis es: Global nombrevariable Astipovariable La sentencia Global sólo puede usarse en el apartado de declaraciones de un Módulo. Mediante la sentencia Global la variable puede usarse en todo el espacio del programa. Sentencia STATIC Como se dijo anteriormente, una variable declarada en un procedimiento pierde su valor al salir de él. Lo peor es que una vez que el programa vuelva a entrar en ese procedimiento, la variable estará puesta a cero. Afortunadamente, esto último tiene solución. Si declarásemos una variable en un procedimiento o función, como estática, esa variable, aunque no la podremos utilizar fuera de ese procedimiento o función, cuando volvamos a él conservará el valor que tenía cuando lo abandonamos. Esta declaración como estática se realiza mediante la intrucción Static Static nombrevariable Astipovariable

El nombre de una variable puede ser tan largo como queramos. hasta un máximo de 40 caracteres. En la versión VB para España se pueden usar incluso la Ñ y vocales acentuadas. Es indiferente usar mayúscula ó minúsculas. No se sorprenda, si por ejemplo, la ha declarado con mayúsculas y luego la cita con minúsculas al escribir el código, que automáticamente se cambie a mayúsculas. El nombre de una variable siempre debe comenzar por una letra. No hay problema por utilizar variables largas. Al compilar el programa no se lleva el nombre, es decir, no le va a ocupar mas espacio. Utilice siempre nombres que le definan la variable con algún sentido. Es muy útil a la hora de acordarse como se llaman, y sobre todo, a la hora de rehacer un programa que realizó hace seis meses. Pese a que Visual Basic no obliga a declarar variables, es muy útil hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo irá demostrando. Resumimos la forma de declarar una variable : En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento) Dim Variable As Tipovariable En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de él conserva el valor aunque se salga y se vuelva a entrar) Static Variable As Tipovariable En un Formulario (En su sección de declaraciones) Como Privada (Solamente se puede usar en ese Formulario) Dim Variable As Tipovariable ó Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable En un Módulo Como Privada (Solamente puede usarse en ese Módulo) Dim Variable As Tipovariable ó Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable ó

Global Variable As Tipovariable ejemplo

la variable num se almacena un numero de tipo entero para utilizarle y sumarle es decir num=num +1 En el desarrollando códigos en VBA, con frecuencia tenemos que almacenar valores para realizar n cantidad de cálculos.En Visual Basic se utilizan variables para almacenar valores al igual que en otros lenguajes de programación.Entonces que es una variable, Variable Las variables se utilizan para almacenar valores que tienen la propiedad de variar el contenido de cualquier tipo de datos. Debemos tomar en cuenta algunos aspectos básicos: 1. Las variables deben tener un nombre que describa el valor que contiene dicha variable. 2. Las variables también tienen un tipo de dato, básicamente es el que establece cual es la clase de dato que se almacenara en nuestra variable. ´´USO´´ Visual Basic, al igual que la mayoría de los lenguajes de programación, utiliza variables para almacenar valores. Una variable tiene un nombre (la palabra que se utiliza para referirse al valor que contiene la variable) y un tipo de datos (que determina la clase de datos que puede almacenar la variable). Una variable puede representar una matriz, si es necesario que almacene un conjunto indizado de elementos de datos estrechamente relacionados entre sí. Ambito de las variables Denominamos ámbito de una variable a las partes del programa donde esa variable está declarada. Para entenderlo mejor, veamos someramente la forma de un programa desarrollado en VB. Un programa VB tiene uno o varios formularios. Cada formulario tiene varios controles. Tanto el formulario como cada uno de sus controles tienen una parte del programa, justamente la parte relacionada con cada uno de los eventos que pueden suceder bien al formulario o a los controles. A estas partes las habíamos llamado Procedimientos. Podemos tener procedimientos que no estén relacionados con ningún evento ocurrido al formulario o a sus controles. Aparte de formularios y controles, un programa puede tener Módulos, y en cada uno de los módulos podemos insertar cuantos Procedimientos y Funciones queramos. La estructura de un programa VB puede ser de la siguiente forma:

Formulario1 Formulario2 Formulario3 Módulo1 Modulo2 Declaraciones Declaraciones Declaraciones Declaraciones Declaraciones Proc. A1 Proc.B1 Proc.C1 Proc.D1 Proc.E1 Proc. A2 Proc.B2 Proc.C2 Proc.D2 Proc.E2 Proc. A3 Proc.B3 Proc.C3 Proc.D3 FunciónE1 Proc. A4 Proc.B4 Proc.C4 Proc.D4 FunciónE2 Proc. A5 Proc.BB1 Proc.CC1 FunciónE3 Proc. AA1 Proc.BB2 Proc.CC2 FunciónE4 Proc. AA2 Proc.B33 Proc.CC3 FunciónE5 Proc. AA3 Proc.CC4 FunciónE6 Si se declara una variable dentro de un procedimiento o Función, esa variable "NO SALE" del Procedimiento o Función donde se declaró. El procedimiento puede estar en un Formulario (Cualquier procedimiento de un control o un procedimiento creado por nosotros) o en un Módulo (En este caso, el procedimiento solo puede ser creado por nosotros) En un Formulario, una variable puede declararse de dos formas : Privada o Pública. Para declarar una variable a nivel de formulario debe hacerse en la sección de declaraciones, que está la ventana de código Objeto = General, Proc. = Declaraciones. Si se declara Privada, esa variable se puede mover por todo el formulario, (es decir, por todos los procedimientos de todos los controles del formulario y por los Procedimientos que pudiésemos insertar en ese formulario), pero no sale de dicho formulario. Si se declara como Pública, esa variable puede moverse por todo el formulario, de la misma forma que lo haría declarada como Privada, y además puede ser usada desde otro Formulario o Módulo, citándola con el nombre del Formulario, seguido del nombre de la variable (Formulario.Variable) En un Módulo una variable puede declararse como Privada, con lo que no saldrá de ese Módulo, o Pública, pudiendo en este caso usarse en todo el programa. En VB es posible declarar varias veces las variables, es decir, pueden declararse a nivel de formulario, en su apartado de declaraciones, y esa variable conservará su valor en todas las partes de ese formulario. Sin embargo, si se declara una variable con el mismo nombre a un nivel inferior, por ejemplo al principio de un procedimiento, esa variable será una variable distinta a la anterior, aunque tenga el mismo nombre, a al declararla en un Procedimiento, solamente será válida en ese Procedimiento. Una vez que hayamos salido de ese procedimiento, la variable con ese nombre volverá a ser la declarada en el Formulario. En

realidad, lo que tenemos son dos variables distintas, pero con el mismo nombre, una declarada para todo el formulario excepto para el procedimiento donde se volvió a declarar, y otra para ese procedimiento concreto. NOTA.- No es recomendable declarar una variable a dos niveles. Es mucho mejor utilizar otro nombre para esa variable dentro del procedimiento donde se le declararía por segunda vez. A esta nota cabe exceptuar cuando declaramos variables para una operación tipo contador For I = 1 To N Esa variable I es práctico declararla con el mismo nombre en cada Procedimiento donde se use.

TIPOS DE VARIABLES

Puede declarar el tipo de la variable mediante un carácter después del nombre de la variable. Esta técnica, obligatoria en Quick-Basic, está en desuso en VB. No es recomendable definir el tipo de esta forma, pues existe un serio peligro de error. De cualquier forma, eso es potestativo del programador y de sus costumbres. Variables Miembro Una variable miembro es un miembro de un tipo de Visual Basic; se declara en el nivel de módulo, dentro de una clase, estructura o módulo, pero no dentro de ningún procedimiento interno de esa clase, estructura o módulo. Las variables miembro son privadas al objeto (siguiendo las directrices de diseño del Principio de ocultación) y su acceso se realiza mediante propiedades o métodos que realizan comprobaciones adicionales. Variables Locales: Las variables locales son variables automáticas almacenadas directamente en la Fila de llamadas. Esto significa que cuando una función recursiva se llama a sí misma, las variables locales reciben, en cada instancia de la función, espacio para el direccionamiento de memoria separados. TIPOS DE VARIABLES Las variables pueden ser de los siguientes tipos: (El número indicado en segundo lugar indica el número de Bytes que ocupa en memoria.) tipos de VARIABLES

Booleana (2) Admite los valores 0 y 1, o True (verdadero) y False (falso) Byte (1) Números enteros, en el rango de 0 a 255 Integer (2) Números enteros en el rango de -32768 a 32767 Long (4) Números enteros en el rango de -2147483648 a 2147483647 Single (4) Punto flotante, simple precisión Double (8) Punto flotante, doble precisión. Currency (8) Entero, con punto decimal fijo (Típico de monedas) String (*) Cadenas alfanuméricas de longitud variable o fija Date (8) Fechas Objet (4) Referencia a objetos Variant (**) Otros tipos de datos (*) Una variable tipo String ocupa el mismo número de bytes que caracteres tenga la cadena. (**) Una variable tipo Variant ocupa 16 bytes si se trata de un número y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres. Ejemplo: Sub locales () Dim num1 as Integer Dim num2 as Integer Dim num3 as Integer Dim resultado as Integer num1 = 45 num2 = 12 num3 = 9 resultado = Cint ((num1 + num2)^2 / num3 (num1 * num2))

MsgBox resultado End Sub Variables Públicas o Globales:

Son aquellas variables que se declaran en el programa principal y podrán ser utilizadas en cualquier parte de programa. Para la declaración de las variables se utiliza la instrucción Public. Ejemplo: Option Explicit Public num1, num2, num3, resultado as Integer Sub expresión1 () num1 = 45 num2 = 12 num3 = 9 resultado = Cint ((num1 + num2)^2 / num3 (num1 * num2))

MsgBox resultado End Sub Sub expresión2 () resultado = Cint (num1/ (num3 - (num1 * num2))

MsgBox resultado End Sub Variables Estáticas: Son aquellas variables que se declaran dentro de un procedimiento y conservan su valor; es decir, que son definidas dentro de cada procedimiento pero retienen el valor de la última vez en el que fue utilizado. Para la declaración de las variables se utiliza la instrucción Static. tambien podemos decir qu las variables estaticas especifican si una o varias variables locales declaradas deben seguir existiendo y conservar sus últimos valores tras la finalización del procedimiento en el que se han declarado. Ejemplo: Option Explicit

Public num as Range Sub macro1 () Dim dato as Byte For dato = 1 to 25 Set dato = cells (dato,1) Call Macro2 Next dato

Sub macro2 () Static dato as Byte dato = dato + 5 num.select num = dato

End Sub Tipos de Datos de las Variables

tipos de datos existen diversos tipos de datos numéricos para controlar números en varias representaciones. Los tipos integrales representan sólo números enteros (positivos,

negativos y cero) y los tipos no integrales representan números con partes enteras y fraccionarias. Los tipo de datos que puede almacenar una variable establece dos condiciones: • El conjunto de valores permitidos para este dato. • El grupo de operaciones que se pueden aplicar sobre esos valores. Los tipos de datos se dividen en 3 categorías elementales, que son: numéricos, cadena de caracteres y lógicos.

Las variables pueden ser de los siguientes tipos: (El número indicado en segundo lugar indica el número de Bytes que ocupa en memoria.)

Booleana (2) = Admite los valores 0 y 1, o True (verdadero) y False (falso) Byte (1) = Números enteros, en el rango de 0 a 255 Integer (2) = Números enteros en el rango de -32768 a 32767 Long (4) = Números enteros en el rango de -2147483648 a 2147483647 Single (4) = Punto flotante, simple precisión datos variables Doble (8) = Punto flotante, doble precisión. Currency (8)= Entero, con punto decimal fijo (Típico de monedas) String (*) = Cadenas alfanuméricas de longitud variable o fija Date (8) = Fechas , mes,año,dia Objet (4)= Referencia a objetos Variant (**)= Otros tipos de datos

(*) Una variable tipo String ocupa el mismo número de bytes que caracteres tenga la cadena.

(**) Una variable tipo Variant ocupa 16 bytes si se trata de un número y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres. Existen también variables definidas por el usuario (Ya verá la sentencia Type). En este tipo de variables se pueden introducir muchos datos de distinto tipo. Los bytes necesarios para almacenar esa variable dependerá de los datos que se hayan definido. Dentro de las variables Objet (variables que se refieren a objetos) existe una gran variedad que a estas alturas del curso no debemos complicarnos con ellas. Cada tipo de variable ocupa unos determinados bytes. Si no se define una variable, VB toma como tipo por defecto para la variable el tipo Variant. Este tipo ocupa mas bytes que, por ejemplo, un integer. Si el tipo de dato que vamos a introducir en una variable es un integer, y no la hemos declarado como tal, VB asumirá para esa variable que es del tipo Variant, lo que le llevará a gastar mas bytes de memoria (16) que los que necesitaría (2) si la hubiésemos declarado previamente. Si esa variable va a estar en el rango de 0 a 255, y no declaramos previamente que la variable va a se del tipo Byte, o la declaramos como integer, p. e., estamos desperdiciando memoria RAM y posiblemente, retardando la ejecución del programa. Lo mismo podemos decir del resto de las variables, y lo importante que es definirlas y definirlas bien. Ejemplos Prácticos de declaración de variables En Visual Basic, cuando declaramos una variable como String (Cadena de caracteres), no es necesario declarar su longitud. VB aceptará cualquier número de caracteres. Si desea evitar que se puedan introducir más de un determinado número de caracteres, debe declarar su número. Por ejemplo : Dim Var1 as String Var1 puede tener cualquier número de caracteres Dim Var2 as String * 15 Var2 puede tener un máximo de 15 caracteres. En este segundo caso, si se introduce como Var2 una cadena de caracteres con mas de 15 caracteres, Var2 tomará solamente los 15 primeros. Visual basic no presenta ningún aviso de que esa variable ha omitido los caracteres que han sobrepasado la cifra de 15. Si desea que el usuario conozca esa circunstancia, debe introducir el código oportuno para producir el aviso. La declaración de variables tipo String con número de caracteres predefinido presenta también inconvenientes a la hora de tratar esa cadena de caracteres con sentencias tales como Mid, Left y Right, o a la hora de añadir una cadena a otra. La experiencia nos indica que NO merece la pena declarar variables tipo String con el número de caracteres prefijado. Reglas de tipos de datos • Tipos de datos. La instrucción Const puede declarar el tipo de datos de unavariable. Puede especificar cualquier tipo de datos o el nombre de una enumeración. • Tipo predeterminado. Si no especifica datatype, la constante toma el tipo de datos de initializer. Si especifica datatype e initializer, el tipo de datos de initializer debe ser convertible al datatype. Si ni datatype ni initializer están presentes, el tipo de datos utiliza Object de manera predeterminada.

• Distintos tipos. Puede especificar distintos tipos de datos para las diferentes constantes utilizando una cláusula As independiente para cada variable que declare. Sin embargo, no puede declarar varias constantes para que sean del mismo tipo utilizando una cláusula As común. • Inicialización. Debe inicializar el valor de cada constante en constantlist. Utilice initializer para proporcionar una expresión que se va a asignar a la constante. La expresión puede ser cualquier combinación de literales, otras constantes que ya estén definidas y miembros de enumeración que ya se hayan definido. Puede utilizar operadores aritméticos y lógicos para combinar estos elementos. No puede utilizar variables ni funciones en initializer. No obstante, pueden utilizarse palabras clave de conversión como CByte y CShort. También puede utilizar AscW si lo llama con un argumento constante String o Char, puesto que puede evaluarse en tiempo de compilación.

Comportamiento

• Ámbito. A las constantes locales sólo se puede tener acceso desde dentro de sus procedimientos o bloques. Se puede tener acceso a las constantes de miembro desde cualquier lugar del interior de sus clases, estructuras o módulos. • Calificación. El código fuera de una clase, estructura o módulo debe calificar el nombre de una constante de miembro con el nombre de esa clase, estructura o módulo. El código situado fuera de un procedimiento o bloque no puede hacer referencia a ninguna constantelocal incluida dentro de ese procedimiento o bloque.

Declarar Variables Una variable se declara para especificar su nombre y sus características. La instrucción de declaración para variables es Instrucción Dim (Visual Basic). Su ubicación y contenido determinan las características de la variable, la instrucción de declaración puede incluirse en un procedimiento para crear una variable de nivel de procedimiento. O puede colocarse al principio de un módulo, en la sección Declarations, para crear una variable de nivel de módulo.

El siguiente ejemplo crea la variable NombreTexto y específicamente le asigna el tipo de datos String. Dim NombreTexto As String

¿Porque declarar variables? porque: El código saldrá más estructurado,si no declaras un variable, no sabrás que tipo de datos contendrá. Es más seguro - evitarás errores tipográficos. VBA te ayudará a poner los nombres correctos. Si no, un error tipográfico puede parar el programa. El código trabajará más eficaz. Variables no declaradas serán tratatos como Variants, las cuales ocupan mucha más memoria. Te ayudará a programar VBA te ayuda a elegir propiedades/métodos que corresponden a esa variable Una variable se declara para especificar su nombre y caractrerísticas. La instrucción para declarar variables, es la instrucción DIM. El nivel de acceso de una variable es la extensión de código que tiene permiso para tener acceso a ella. Declarar una variable consiste en avisar al programa la existencia de los datos a ingresarse, dandole un nombre y un tipo. La declaración de variables es aconsejable pero no obligatoria salvo que se fuerze a Visual Basic a declarar todas las variables mediante la sentencia Option Explicit al principio de cada módulo. Las variables tienen un ámbito que delimita las partes del programa desde donde se pueden usar, así hay variables de tipo local y variables de tipo global. Las variables locales son aquellas que están definidas dentro de un procedimiento o función y sólo son accesibles en ese procedimiento o función donde se definieron, así una variable local es reinicializada cada vez que se entra en el procedimiento. Las variables de tipo global son aquellas que son accesibles desde cualquier parte del programa. Para hacer que una variable sea global, hay que declararla en la parte general de un módulo. La declaración de variables se realiza de la siguiente forma: { Dim / Static / Private / Public ] nombreVariable as Tipo. El siguiente ejemplo crea la variable NombreTexto y específicamente le asigna el tipo de datos String. Dim NombreTexto As String

Si esta instrucción aparece dentro de un procedimiento, la variable NombreTexto se puede usar sólo en ese procedimiento. Si la instrucción aparece en la sección Declarations del módulo, la variable NombreTexto estará disponible en todos los procedimientos dentro del módulo, pero para los restantes módulos del proyecto. Para hacer que esta variable esté disponible para todos los procedimientos de un proyecto, basta con comenzar la declaración con la instrucción Public, tal y como muestra el siguiente ejemplo: Public NombreTexto As String Si desea más información sobre cómo dar nombre a sus variables, puede consultar la sección "Visual Basic Naming Rules" en la Ayuda de Visual Basic. Las variables se pueden declarar como de uno de los siguientes tipos de datos: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (para cadenas de longitud variable), String * longitud (para cadenas de longitud fija), Object, o Variant. Si no se especifica el tipo de datos, el tipo de datos Variant es el predefinido. También es posible crear un tipo definido por el usuario empleando la instrucción Type. Si desea más información sobre tipos de datos puede consultar la sección "Tipo de datos Summary" en la Ayuda de Visual Basic. Se pueden declarar varias variables en una instrucción. Para especificar el tipo de datos se debe incluir un tipo de datos para cada variable. En la siguiente instrucción se declaran las variables intX, intY, e intZ como del tipo Integer. Dim intX As Integer, intY As Integer, intZ As Integer En la siguiente instrucción, intX e intY se declaran como del tipo Variant; y sólo intZ se declara como del tipo Integer. Dim intX, intY, intZ As Integer No es necesario especificar el tipo de datos en la instrucción de declaración. Si se omite, la variable será del tipo Variant. Utilizar la instrucción Public La instrucción Public se puede utilizar para declarar variables públicas de nivel de módulo. Public NombreTexto As String Las variables públicas se pueden usar en cualquier procedimiento del proyecto. Si una variable pública se declara en un módulo estándar o en un módulo de clase, también se podrá usar en los proyectos referenciados por el proyecto en que se declara la variable pública. Utilizar la instrucción Private La instrucción Private se puede usar para declarar variables privadas de nivel de módulo.

Private MiNombre As String Las variables Private pueden ser usadas únicamente por procedimientos pertenecientes al mismo módulo. Nota Cuando se utiliza a nivel de módulo, la instrucción Dim es equivalente a la instrucción Private. Sería aconsejable usar la instrucción Private para facilitar la lectura y comprensión del código. Utilizar la instrucción Static Cuando se utiliza la instrucción Static en lugar de la instrucción Dim, la variable declarada mantendrá su valor entre llamadas sucesivas. Utilizar la instrucción Option Explicit En Visual Basic se puede declarar implícitamente una variable usándola en una instrucción de asignación. Todas las variables que se definen implícitamente son del tipo Variant. Las variables del tipo Variant consumen más recursos de memoria que la mayor parte de las otros tipos de variables. Su aplicación será más eficiente si se declaran explícitamente las variables y se les asigna un tipo de datos específico. Al declararse explícitamente las variables se reduce la posibilidad de errores de nombres y el uso de nombres erróneos. Si no desea que Visual Basic realice declaraciones implícitas, puede incluir en un módulo la instrucción Option Explicit antes de todos los procedimientos. Esta instrucción exige que todas las variables del módulo se declaren explícitamente. Se puede seleccionar una opción del entorno de programación de Visual Basic para incluir automáticamente la instrucción Option Explicit en todos los nuevos módulos. Consulte la documentación de su aplicación para encontrar la forma de modificar las opciones de entorno de Visual Basic. Tenga en cuenta que esta opción no tiene ningún efecto sobre el código que se haya escrito con anterioridad. Nota Las matrices fijas y dinámicas siempre se tiene que declarar explícitamente. Declarar una variable de objeto para automatización Cuando se utiliza una aplicación para controlar los objetos de otra aplicación, debe establecerse una referencia a la biblioteca de tipos de la otra aplicación. Una vez que se ha establecido la referencia, se pueden declarar variables de objeto conforme a su tipo más específico. Por ejemplo, si desde Microsoft Word se establece una referencia a la biblioteca de tipos de Microsoft Excel, se puede declarar una variable del tipo Worksheet desde Microsoft Word para representar un objeto Worksheet de Microsoft Excel. Si se utiliza otra aplicación para controlar objetos de Microsoft Access, es posible, en la mayor parte de los casos, declarar variables objetos del tipo más específico. Se puede usar también la palabra clave New para crear automáticamente una nueva definición de un objeto. Sin embargo, puede ser necesario indicar que se trata de un objeto Microsoft Access. Por ejemplo, cuando se declara una variable de objeto para representar un formulario de Microsoft Access desde Microsoft Visual Basic, debe distinguirse entre el objeto Form de Microsoft Access y un objeto Form de Visual Basic. Para ello se incluye el

nombre de la biblioteca de tipos en la declaración de la variable, como muestra el siguiente ejemplo: Dim frmPedidos As New Access.Form Algunas aplicaciones no reconocen algunos de los tipos de objetos de Microsoft Access. En ese caso, incluso después de establecer una referencia a la biblioteca de tipos de Microsoft Access, será necesario declarar todas las variables objeto de Microsoft Access como del tipo Object. Tampoco puede usarse la palabra clave New para crear una nueva definición del objeto. El siguiente ejemplo muestra cómo declarar una variable que represente una nueva definición del objeto Application de Microsoft Access desde una aplicación que no reconoce los tipos de objeto de Microsoft Access. Dim appAccess As Object Set appAccess = CreateObject("Access.Application") Para determinar la sintaxis a utilizar con una aplicación determinada debe consultarse la documentación de la aplicación. Niveles de declaración Valor local y variables miembros Una variable local es aquella que se declara dentro de un procedimiento. Una variable miembro es un miembro de un tipo de Visual Basic; se declara en el nivel de módulo, dentro de una clase, estructura o módulo, pero no dentro de ningún procedimiento interno de esa clase, estructura o módulo. Variables compartidas y de instancias La categoría de una variable miembro, en una clase o estructura, depende de que la variable esté o no compartida. Si una variable se declara con la palabra clave Shared, es una variable compartida, y existe en una única copia compartida por todas las instancias de la clase o estructura. Declarar el tipo de datos La cláusula As de la instrucción de declaración permite definir el tipo de datos o de objetos de la variable que se está declarando. Se puede especificar cualquiera de los siguientes tipos para una variable: - Un tipo de datos básico, como Boolean,Long o decimal - Un tipo de datos compuesto,como una matriz o estructura - Un tipo de objeto o clase, definido en su aplicación o en otra aplicación - Una clase de .NET Framework, como Label o TextBox Un tipo de interfaz, como IComparable o IDisposable

Se pueden declarar varias declarar distintas variables en la misma instrucción sin necesidad de repetir el tipo de datos. En las instrucciones siguientes, las variables i, jy k se declaran como tipo Integer, l y m como Long, y x e y como Single: Copiar Dim i, j, k As Integer ' All three variables in the preceding statement are declared as Integer. Dim l, m As Long, x, y As Single ' In the preceding statement, l and m are Long, x and y are Single. El ámbito de una variable está formado por todo código que puede hacer referencia a la variable sin tener que calificar su nombre. El ámbito de una variable está determinado por la ubicación en la que se haya declarado la variable. El código de una región determinada puede utilizar las variables definidas en dicha región sin necesidad de especificar los nombres de las variables. Este es el principal paso en la vida de una variable, esta se realiza en la seccion que comienza con la palabra var. Para declarar variables se utiliza normalmente una instrucción Dim. La instrucción de declaración puede incluirse en un procedimiento para crear una variable de nivel de procedimiento. O puede colocarse al principio de un módulo, en la sección Declarations, para crear una variable de nivel de módulo. Para declarar variables se deben tomar en consideracion los siguientes parametros: 1. Nunca deben empezar con caracteres especiales 2. No se pueden usar palabras reservadas como dim, integer, long, single, double, if, etc... 3. No es obligatorio pero deberian ser identificadas con un nombre referiendose al proceso para la que va ser usada. 4. Deben ser declaradas de acuerdo al tipo de datos que las mismas van a usar. 5. Se puede declarar varias variables en una misma línea de código. [[Ejemplo]] Dim numero1, numero2 as integer Dim nombre, ciudad as string Dim answer as boolean Dim division as double Dim cedula as integer, nombre as string, sueldo as double

Tambien es muy importante tomar en cuenta que si se ecuentra activo el option explicit, esta nos obliga a declarar previamente las variables que se vayan a usar. De no haberla declarado antes de usarla, el programa dará una comunicación de error. Resumimos la forma de declarar una variable : En un Procedimiento (La variable no puede usarse fuera de esta Procedimiento) Dim Variable As Tipovariable En un Procedimiento, como permanente (La variable no puede usarse fuera de este procedimiento, y dentro de él conserva el valor aunque se salga y se vuelva a entrar) Static Variable As Tipovariable En un Formulario (En su sección de declaraciones) Como Privada (Solamente se puede usar en ese Formulario) Dim Variable As Tipovariable ó Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable En un Módulo Como Privada (Solamente puede usarse en ese Módulo) Dim Variable As Tipovariable ó Private Variable As Tipovariable Como Pública (Puede usarse en toda la aplicación) Public Variable As Tipovariable ó Global Variable As Tipovariable Opction Explicit: Un concepto claro que podemos tener de la instruccion option explicit es la que nos indica que exige la declaración explícita de todas las variables en un archivo.

Esta instrucción se usa en el módulo para forzar las declaraciones explícitas de todas las variables en dicho módulo, es decir, que no las des por supuestas, sino que se tengan que declarar antes de comenzar. Si se usa, la instrucción Option Explicit, ésta debe aparecer en un módulo antes de cualquier otro procedimiento. Utilice Option Explicit para evitar escribir incorrectamente el nombre de una variable existente o para evitar confusiones en el código allí donde el ámbito de la variable no esté claro. Si no utiliza la instrucción Option Explicit, todas las variables no declaradas son de tipo Object. EJEMPLO DE LA FUNCION OPTION EXPLICIT Option Explicit Sub Cn_s() Dim C0 As Integer Dim t As Integer Dim i As Integer C0 = Val(InputBox("Entrar el Capital Inicia", "Entrada de datos")) t = Val(InputBox("Entrar el Tiempo", "Entrada de datos")) i = Val(InputBox("Entrar el Interés", "Entrada de datos")) ActiveSheet.Range("cns").Value = C0*(1+i*t) End Sub La función Val(Dato String), devuelve los números contenidos en una cadena como un valor numérico del tipo adecuado. Si la cadena a convertir contiene algún carácter no numérico devuelve 0. Así, si al pedir un valor se teclea "Hola", la función Val, devolverá un cero. Funciones de conversión de tipos. (Tabla copiada de la ayuda en línea de Visual Basic para Excel). Val(Cadena). Convierte la cadena a un valor numérico.

Str(Número). Convierte el número a una expresión cadena. Comentarios Si se utiliza, la instrucción Option Explicit tiene que aparecer en un archivo antes que cualquier otra instrucción de código fuente. Cuando Option Explicit aparece en un archivo, se deben declarar explícitamente todas las variables mediante instrucciones Dim o ReDim. Si intenta utilizar un nombre de variable no declarada, se producirá un error en tiempo de compilación. Utilice Option Explicit para evitar escribir incorrectamente el nombre de una variable existente o para evitar confusiones en el código allí donde el ámbito de la variable no esté claro. Si no utiliza la instrucción Option Explicit, todas las variables no declaradas son de tipo Object. Nota El valor predeterminado del compilador es Option Explicit On si no especifica Option Explicit en el código. También puede establecer Option Explicit en el entorno de desarrollo integrado (IDE) de Visual Studio o en una línea de comandos. Para establecer Option Explicit en el entorno de desarrollo integrado (IDE) 1.En el menú Herramientas, elija Opciones. 2.Abra el nodo Proyectos y soluciones. 3.Elija Valores predeterminados de VB. 4.Modifique el valor de Option Explicit. Para establecer Option Explicit en la línea de comandos •Incluya la opción del compilador /optionexplicit en el comando vb Ejemplo de anotación de variables bien clara abajo: Option Explicit: Private Sub Command1_Click() Dim Dim Dim Dim Dim Dim

nInt nLng nSng nDob nCur nVar

As As As As As As

Integer Long Single Double Currency Variant

(numérico, cadena de caracteres o fecha)

Sub: Indica que por ejemplo Command1 es un procedimiento, es decir no es una función o propiedad. Las funciones devuelven un valor, los procedimientos no (salvo en algunos casos particulares). “()” : En los dos paréntesis van los parámetros Comentarios

Si se utiliza, la instrucción Option Explicit tiene que aparecer en un archivo antes que cualquier otra instrucción de código fuente. Cuando Option Explicit aparece en un archivo, se deben declarar explícitamente todas las variables mediante instrucciones Dim o ReDim. Si intenta utilizar un nombre de variable no declarada, se producirá un error en tiempo de compilación. Utilice Option Explicit para evitar escribir incorrectamente el nombre de una variable existente o para evitar confusiones en el código allí donde el ámbito de la variable no esté claro. Si no utiliza la instrucción Option Explicit, todas las variables no declaradas son de tipo Object. Declarar una Variable de objeto para Automatización OBJETO: de Automatización Automatización es el proceso de controlar un programa de otro programa o herramienta de desarrollo externo. Puede automatizar cualquier programa que contiene un modelo de objetos de Visual Basic. Un modelo de objetos es una colección jerárquica de objetos que están disponibles el programa o la expone a Visual Basic. Para declarar una variable de objeto de automatizacion el Objeto que se ofrece para otras aplicaciones o herramientas de programación a través de las interfaces de Automatización. Declara una variable de Object especificando As Object en Instrucción Dim. Asigna un objeto a este tipo de variable colocando el objeto después del signo igual (=) en una instrucción de asignación o una cláusula de inicialización.

EJEMPLO: En el siguiente ejemplo se declara una variable Object y se le asigna la instancia actual. Dim thisObject As Object

thisObject = Me Puede combinar la declaración y la asignación inicializando la variable como parte de su declaración. El ejemplo siguiente es equivalente al ejemplo anterior. Dim thisObject As Object = Me No todos los lenguajes de programación pueden utilizar todas las variable que aparecen en una biblioteca de tipos o biblioteca de objetos. Las causas y posibles soluciones de este error son las siguientes: Intentó utilizar una variable definida en una biblioteca de tipos u objetos que tiene un tipo de datos no admitido por Visual Basic. No puede utilizar una variable de un tipo no reconocido por Visual Basic en un programa de Visual Basic. Cuando accede a objetos de Automatización, pueden producirse errores de determinados tipos específicos. Las causas y posibles soluciones de este error son las siguientes: Compruebe las propiedades del objeto Err para determinar el origen y la naturaleza del error. Además, al acceder a un objeto de Automatización, pruebe utilizando la instrucción On Error Resume Next justo antes de la instrucción de acceso. Cuando especifica un nombre de objeto sin una propiedad o método, Visual Basic asume que está haciendo referencia al miembro predeterminado del objeto (propiedad o método). Sin embargo, no todos los objetos exponen un miembro predeterminado. Las causas y posibles soluciones de este error son las siguientes: Visual Basic no puede determinar el miembro predeterminado para el objeto especificado. Consulte la documentación del objeto y proporcione una especificación explícita para la propiedad o el método. Comprender la Vida de las Variables Vida de las Variables la vida de las variables es El periodo de vida de una variable es el tiempo durante el cual la variable está activa, ocupando el espacio de memoria y pueden ser clasificados de acuerdo a la siguiente tabla: Ámbito de bloque El periodo de vida de estas variables se desarrolla desde el momento en que son declaradas dentro del bloque y hasta que dicho bloque finaliza. Ámbito de procedimiento

Para estas variables, su periodo de vida está comprendido entre el momento en que son declaradas y hasta que la ejecución del procedimiento termina Ámbito a nivel de módulo y proyecto En este caso, el periodo de vida de la variable va desde el comienzo de la ejecución de la aplicación y hasta que esta termina. Variable no definida Se ha usado la instrucción Option Explicit para impedir que los módulos tengan variables no declaradas y para eliminar la posibilidad de crear de forma inadvertida nuevas variables por errores tipográficos. Las causas y posibles soluciones de este error son las siguientes: • Se ha usado la instrucción Option ExplicitTexto en cursiva para requerir la declaración explícita de variables y se ha usado una variable sin declararla. Declare explícitamente la variable, o cambie la ortografía de la variable para que coincida con la deseada.

Constantes En Visual Basic para aplicaciones una constante es un nombre significativo que toma el lugar de un número o cadena que no cambia. Las constantes almacenan valores que, como su nombre indica, permanecen iguales durante la ejecución de una aplicación. Puede mejorar considerablemente la legibilidad del código y facilitar su mantenimiento mediante constantes. Utilícelas en código que contiene valores que reaparecen o que dependen de ciertos números que son difíciles de recordar o que no tienen un significado evidente

'COMO CREAR CONSTANTES Visual Basic contiene varias constantes predefinidas, que se utilizan principalmente para imprimir y mostrar. Puede crear también sus propias constantes con la instrucción Const,

utilizando las mismas directrices que en la creación de nombres de variables. Si Option Strict es On, debe declarar el tipo de constante explícitamente. El ámbito de una constante, que es el conjunto de todo el código que puede hacer referencia a ella sin calificar su nombre, es igual al de una variable declarada en la misma ubicación. Para crear una constante que exista en el ámbito de un procedimiento concreto, declárela dentro de dicho procedimiento. Para crear una constante disponible en toda la aplicación, declárela con la palabra clave Public en la sección de declaraciones de la clase. Las constantes que se utilizan en el código pueden ser definidas por el modelo de objeto para los controles o componentes con los que trabaja o definidas por el usuario, es decir, creadas por éste

Como Declarar Una Constante

Al declarar una constante, se puede asignar a un valor un nombre que tenga algún significado apropiado. La instrucción Const se utiliza para declarar una constante y darle valor. Una constante no puede modificarse o cambiar de valor una vez que ha sido declarada. Se puede declarar una constante dentro de un procedimiento o al principio de un módulo, en la sección de Declarations. Las constantes a nivel de módulo son privadas, a menos que se especifique lo contrario. El siguiente ejemplo declara la constante Public EdadCon como un Integer y le asigna el valor 34. Public Const EdadCon As Integer = 34

Las constantes se pueden declarar de uno de los siguientes tipos de datos: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String, o Variant. Dado que ya se conoce el valor de una constante, es muy fácil elegir el tipo de datos en la instrucción Const. Si desea más información sobre tipos de datos, consulte la sección "Tipo de datos Summary" en la Ayuda de Visual Basic. En una sola instrucción se pueden declarar varias constantes. Para especificar un tipo de datos, debe incluirse el tipo de datos para cada constante. En la siguiente instrucción se declaran como Integer las constantes EdadCon y SalarioCon. Const EdadCon As Integer = 34, SalarioCon

Para declarar una constante se necesita la instrucción:

Const Nombre_Constante = Expresión

Hay dos tipos de constantes las cuales son intrinsecas o definidas por el sistema y simbolicas o definidas por el usuario que las detallaremos a continuacion: Intrínsecas o definidas por el sistema, proporcionadas por Visual Basic o cualquier otra aplicación que provee una librería de objetos. Para ver una lista de estas constantes, se accederá a Ver/Examinador de Objetos.

Simbólicas o definidas por el usuario. Es una buena idea el declarar las constantes simbólicas con el prefijo con, p.e. Const conPi = 3.141592 Costantes de cadena Las Constantes De Cadena son cualquier Constante que esta formada por un conjunto de caracteres tomados como tales("Caracteres"),en lugar de que dichos elementos sean asumidos como algún valor numérico o de cualquier otra indo por ejemplo:integer o double. Ejemplo

Const MENSAJE As String = "HOLA COMPAÑEROS" Sub Constante() MsgBox (MENSAJE), , "PRUEBA I" SALUDO = MENSAJE & " " & "DEL" & " " & "CURSO" MsgBox (SALUDO), , "PRUEBA II" End Sub

Nota Visual Basic sigue reconociendo constantes de aplicaciones creadas con versiones anteriores de Visual Basic o Visual Basic for Applications. Es posible actualizar las constantes para utilizar sólo las que aparecen en el Examinador de objetos. Las constantes que aparecen en el Examinador de objetos no tiene que declararse en su aplicación. Constantes simbólicas o definidas por el usuario, se declaran mediante la instrucción Const. Constantes de compilación condicional que se declaran empleando la instrucción #Const. En versiones anteriores de Visual Basic, los nombres de constantes se representaban normalmente en mayúsculas y con guiones de subrayado. Por ejemplo: Parte Descripción

nombrebiblioteca Opcional. El nombre de la biblioteca tipo que define a la constante. Para la mayor parte de los controles (no está disponible en Macintosh), se trata también del nombre de clase del control. Si no recuerda el nombre de clase del control, sitúe el puntero del mouse (ratón) sobre el control en la caja de herramientas. El nombre de clase aparecerá en el ToolTip. nombremodulo Opcional. El nombre del módulo, dentro de la biblioteca tipo que define a la constante. Se puede conocer el nombre del módulo empleando el Examinador de objetos. nombreconstante El nombre definido para la constante en la biblioteca tipo.

Matrices DEFINICION DE UNA MATRIZ Al utilizar matrices, puede emplear el mismo nombre para hacer referencia a distintos valores gracias a la utilización de un número denominado índice o subíndice que permite distinguirlos. Las matrices pueden reducir y simplificar el código, permitiendo crear bucles que gestionan de forma eficiente cualquier número de elementos. Una matriz de dos dimensiones se representa con una variable con dos subíndices (filas, columnas); una matriz de tres dimensiones se representa con una variable con tres subíndices, etc. El máximo número de dimensiones para una matriz en Visual Basic es 60, aunque las más utilizadas son las de una, dos y tres dimensiones. Los índices de las matrices deben estar en el rango de -2 a la 31 a 2 a la 31 en versiones de 32 bits. Para formar el nombre de una matriz y definir si ésta es numérica o de caracteres, se siguen las mismas reglas que para las variables. Por ejemplo: Dim a(24) as integer 'matriz entera unidimensional de 24 elementos Dim c(12, 5) as string 'matriz de caracteres de 2 dimensiones

En Visual Basic hay dos tipos de matrices: matrices estáticas que tiene siempre el mismo tamaño matrices dinámicas cuyo tamaño cambia en tiempo de ejecución. Es una estructura de datos que contiene una serie de datos que estan relacionados entre si y que pueden ser utilizados al momento de su llamado,conjunto de elementos contiguos, todos del mismo tipo, que comparten un nombre común, a los que se puede acceder por la posición (o índice) que ocupa cada uno de ellos dentro de la matriz. Esta disposición permitirá escribir código más pequeño y simple, ya que se pueden establecer codigos o instrucciones mediante el número del índice. Cada elemento es una variable que puede contener un dato numérico o una cadena de caracteres, dependiendo esto del tipo de matriz. Para dar valor a un elemento individual, es preciso especificar el índice del elemento. El siguiente ejemplo asigna un valor inicial de 20 a todos los elementos de la matriz. Sub LlenarMatriz() Dim curGastos(364) As Currency

Dim intI As Integer For intI = 0 to 364 curGastos(intI) = 20 Next End Sub

MATRICES ESTÁTICAS Para declarar una matriz estática (matriz con un número fijo de elementos), Visual Basic hace tres consideraciones importantes: - Para declarar una matriz global, hágalo en la sección de declaraciones de un módulo utilizando la sentencia públic. Public temp(59) as integer

- Para declarar una matriz a nivel de módulo, hágalo en la sección declaraciones del módulo utilizando la sentencia Private o Dim. Private temp(59) as integer

- Para declarar una matriz local a un procedimiento, utilice la sentencia Dim o Static dentro del propio procedimiento. Dim temp(59) as integer

A diferencia de otras versiones de Basic, Visual Basic no permite declarar implicitamente una matriz.Una matriz tiene que ser declarada explicitamente, y los índices de la mismos deben estar en el rango -2 a la 31 a 2 a la 31. A continuación observaremos algunos ejemplos: Dim Matriz_A(19) as string

Este ejemplo declara una matriz de una dimensión, Matriz_A, con veinte elementos, Matriz_A(0), Matriz_A(1),...,Matriz_A(19), cada uno de los cuales permite almacenar una cadena de caracteres de longitud variable. Dim Matriz_B(3, 1 to 6) as integer

Este ejemplo declara una matriz de dos dimensiones, Matriz_B, con 4*6 elementos, Matriz_B(0,1) ,..., Matriz_B(3,6) de tipo entero. Static Matriz_C(1 to 5 to 1 to 5) as integer

Este ejemplo declara una matriz estática (Static) de dos dimensiones, Matriz_C, con 5*5 elementos, Matriz_C (1,1),..., Matriz_C(5,5), de tipo entero. Public Matriz_D(1 to 12) as string * 60

Este ejemplo declara una dimensión, Matriz_D,, con doce elmentos, Matriz_D(1) ,..., Matriz_D(12)cada uno de los cuale s permite almacenar una cadena de caracteres de longitud fija (60 caracteres).

MATRICES DINÀMICAS Cuando las dimensiones de una matriz no son siempre las mismas, la mejor forma de especificarlas es mediante variables. Una matriz declarada de esta forma es una matriz dinámica. El espacio necesario para una matriz estática se asigna al iniciarse la aplicación y permanecerá fijo. En cambio, el espacio para una matriz dinámica será asignado durante la ejecución de la aplicación. Una matriz dinámica puede ser redimensionada en cualquier momento durante la ejecución. Para declarar una matriz dinamica mtr1: Dim mtr1() As Integer ' Declara una matriz dinámica. Las instrucciones siguientes cambian el tama~no de la matriz mtr1 y la inicializa. Observe el uso de Redim para cambiar el tama~no de la matriz dinámica. Dim mtr1() As Integer ' Declara una matriz dinámica. Dim r() as Double Redim mtr1(10) ' Cambia el tama~no a 10 elementos, 1x10. Redim r(n,m) ' Cambia tamaño a n x m For i = 1 To 10 ' Bucle 10 veces. mtr1(i) = i ' Inicializa la matriz. Next i Usando Preserve se puede cambiar el tamaño de la matriz mtr1 pero sin borrar los elementos anteriores. Redim Preserve mtr1(15) ' Cambia el tamaño a 15 elementos. Para crear una matriz dinámica:

- Declare la matriz en la sección de declaraciones de módulo con una sentencia Public si se quiere global o con Private o Dim. Si la quiere al nivel del módulo, o en procedimiento con Static o Dim si la quiere local. Para especificar que la matriz va a ser dinámicadeje la lista de dimensiones vacía. Por ejemplo: Dim Matriz_A()

- Asigne un número actual de elementos con la sentencia ReDim. Se supone que N está definida previamente. ReDim Matriz_A(N + 1)

La sentencia Redim puede aparecer solamente en un procedimeinto y permite cambiar el número de elementos de la matriz, no el número de dimensiones. Sin embargo, no puede declarar un a matriz de un tipo de datos y luego usar ReDim para cambiar la matriz a otro tipo de datos. Por ejemplo, si declaramos la matriz Matriz_A a nivel de un módulo, Private Matriz_A() as integer

más tarde, un procedimiento cálculo puede asignar espacio para la matriz, como se indica a continuación: Sub Cálculo() Dim F as integer, C as integer ... ReDim Matriz_A(F,C) ... End Sub

Cada vez que se ejecuta la sentencia ReDim, todos los valores almacenados en la matriz se pierden. Visual Basic restablece los valores del valor Empty en matrices Variant, a cero en matrices numéricas, a una cadena de longitud cero en matrices de cadenas, o a Nothing en matrices de objetos. Cuando le interese cambiar el tamaño de la matriz conservando los valores de la misma los valores de la misma, ejecute ReDim con la palabra clave Preserve. Por ejemplo, supongamos la matriz A de dos dimensiones. La sentencia: ReDim Preserve A(D1, UBound(A, 2) + 2)

Incrementa el tamaño de la matriz multidimensional, sólo se puede cambiar el límite superior de la última dimensión. Cualquier otro intento produce un error. Evidentemente, si se disminuye el tamaño de la matriz hay una perdida parcial de los datos. como declarar matrices

La declaración de una matriz especifica el nombre de la matriz, el número de elementos de la lista y el tipo de éstos. En función del número de dimensiones, distinguimos entre matrices unidimensionales y multidimensionales. Las matrices se declaran igual que las restantes variables, utilizando instrucciones Dim, Static, Private, o Public. La diferencia entre las variables escalares (aquellas que no son matrices) y las variables matriz es que normalmente se debe especificar el tamaño de la matriz. Una matriz con un tamaño especificado es una matriz de tamaño fijo. Una matriz cuyo tamaño puede cambiar mientras el programa se está ejecutando es una matriz dinámica. Si una matriz se indexa desde 0 ó desde 1 depende del valor de la instrucción Option Base. Si Option Base 1 no se especifica, todos los índices de matrices comienzan en cero. Almacenar valores Variant en matrices Hay dos formas de crear matrices de valores Variant. Una forma consiste en declarar una matriz como del tipo de datos Variant, tal y como muestra el siguiente ejemplo: Dim varDatos(3) As Variant varDatos(0) = "Cristina Martínez" varDatos(1) = "C/ Don Ramón de la Cruz, 73" varDatos(2) = 38 varDatos(3) = Format("06-09-1952", "Fecha general")

La otra forma consiste en asignar la matriz que devuelve la función Matriz a una variable Variant, tal y como muestra el siguiente ejemplo. Dim varDatos As Variant varDatos = Array("Cristina Martínez", "C/Don Ramón de la Cruz, 73", 38, _ Format("06-09-1952", "Fecha general"))

Los elementos de una matriz de valores Variant se identifican mediante su índice, sea cual sea la técnica que se haya usado para crear la matriz. Por ejemplo, la siguiente instrucción podría añadirse a cualquiera de los ejemplos anteriores. MsgBox "Los datos de " & varDatos(0) & " se han guardado." Utilizar matrices con múltiples dimensiones En Visual Basic se pueden declarar matrices con hasta 60 dimensiones. Por ejemplo, la siguiente instrucción declara una matriz de dos dimensiones, de 5 por 10. Dim sngMulti(1 To 5, 1 To 10) As Single

Si considera a la matriz como una tabla de dos entradas, el primer argumento representaría a las filas y el segundo a las columnas.

Utilice instrucciones For...Next para operar con matrices de dimensiones múltiples. El siguiente procedimiento llena una matriz bidimensional con valores Single. Sub LlenaMatrizMulti() Dim intI As Integer, intJ As Integer Dim sngMulti(1 To 5, 1 To 10) As Single ' Llena matriz con valores. For intI = 1 To 5 For intJ = 1 To 10 sngMulti(intI, intJ) = intI * intJ Debug.Print sngMulti(intI, intJ) Next intJ Next intI End Sub

COPIAR UNA MATRIZ EN OTRA No existe una función predefinida que permita copiar una matriz en otra. Es posible asignar el contenido completo de una matriz a otra matriz, siempre y cuando la matriz del lado izquierdo de la asignación sea una matriz dinámica. Las matrices estáticas solo pueden aparecer a la derecha de la asignación. Según esto, puede sustituirse la rutina de copiar matriz del ejemplo anterior por: x= m

SENTENCIA DIM EN LAS MATRICES La sentencia Dim, además de para declarar variables, se puede utilizar también para declarar matrices. Su sintaxis es: Dim variable[(dims)][As tipo][variable[(dims)][as tipo]]... Variable es un identificador que nombra la matriz. dim es una de expresiones numéricas, separadas por comas y que definen las dimensiones de una matriz. Esta lista puedeser de la forma siguiente: [inferior to]superior[,[inferior to]superior]... As tipo define el tipo de variable. Puede ser un tipo simple(integer, log, single, double, string, etc.) o un tipo definido por el usuario.

Por ejemplo, la siguiente línea de código define una matriz unidimensional llamada temp con subíndices definidos en el rango de 0 a 59. Esto es, los elementos de la matriz son: temp(0), temp(1), ..., temp(59). El limite inferior predeterminado es 0. Dim temp(1 to 60) as string * 40 La sentencia siguiente declara una matriz bidimensional de 10 por 10 elementos de tipo Double: Dim ma(9,9) as double Se puede declarar una o ambas dimensiones con límites inferiores explícitos: Dim mc(3, -4 to 5, 1 to 12) La declaración anterior crea una matriz que tiene tres dimensiones. El tipo de cada elemento es Variant. El número total de elementos es el producto de los tamaños de las tres dimensiones(4*10*12); es decir, 480. El espacio de almacenamiento total que necesita una matriz depende de su número de elementos y del tipo de cada elemento. Por lo tanto, hay que utilizar las matrices multidimensionales con sumo cuidado. También hay que tener especial cuidado on las matrices de tipo Variant, ya que este tipo de datos requiere más espacio de almacenamiento que los otros tipos de datos. Cuando se ejecuta la sentencia dim, se asigna a todos los elementos de las matrices numéricas el valor 0, y a los elementos de las matrices de caracteres uma cadena de longitud ("") si se trata de cadenas de longitud variable, o bien se rellenan los nulos(ANSI 0) si se trata de cadenas de longitud fija. La propiedad ToolTipText de un control almacena una descripción corta acerca de la función que desempeña dicho control.

SENTENCIA ERASE EN MATRICES Para matrices estáticas, Erase asigna cero a cada elemento de las matrices numéricas y nulo ("") a cada elemento de las matrices de caracteres. Para matrices dinámicas, Erase libera el espacio de memoria utilizado por las matrices. Para utilizar de nuevo cualquiera de ellas , es necesario de nuevo declarar las dimensiones de la matriz utilizando ReDim o Dim. Erase nombre_de_la_matriz[,nombre_de_la_matriz]...

Cuando se dispone de poco espacio de memoria, resulta útil la sentencia Erase para borrar las matrices dinámicas que ya no van a ser utilizadas. Erase también puede utilizarse cuando deseamos redimensionar matrices en una aplicación. Por ejemplo: Dim b() as integer n = 10: m = 20 Dim a(100) as integer ReDim b(n, m) ... Erase a,b 'poner a 0 la matriz a y liberar la memoria de b ReDim b(5, 5) 'redimensionar la matriz b

SENTENCIA OPTION BASE Se utiliza en el nivel del módulo para definir el límite inferior predeterminado para los subíndices de una matriz. Su sintaxis es: Option Base n

donde n es una expresión entera de valor 0 o 1. El valor predeterminado es 0.Esta sentencia debe ejecutarse antes de definir cualquier matriz y no se puede utilizar dentro de un procedimiento. Por ejemplo: Option Base 1 Private Sub Form_Load() Dim a(100) as integer 'matriz de 100 elementos: a(1) ... a(100) a(1) = 10 ... End Sub

Este ejemplo crea una matriz numérica unidimensional llamada a con 100 elementos, a(1) ... a(100). No obstante, la cláusula To en las instrucciones Dim, Private, Public, ReDim y Static proporciona una forma mas flexiblede controlar los límites inferior y superior de cada dimensión de una matriz. Ejemplo de matriz de 2 dimensiones Matriz bidimensionales de 6 x 8 (de 2 dimensiones). Dim personas (1 to 6, 1 to 8) as string Si luego quisiera acceder a los datos de la misma solo debemos referirnos a los subíndices Por ejemplo:

personas (1, 1) = "Carolina" personas (2, 1) = "Zinedine Zidane" personas (1, 7) = "Augusta De las Mercedes" personas (1, 8) = "Joselito" personas (2, 2) = "Manuelito" personas (4, 1) = "Diego" personas (6, 2) = "Gilberto" personas (6, 5) = "Mariana" personas (6, 8) = "Daphne" El total de índices posibles para almacenar datos o valores en el ejemplo anterior es de 48 datos, ya que si multiplicamos 6 x 8 nos da como total 48 valores posibles para utilizar en la matriz bidimensional. DECLARACIÓN DE MATRICES La declaración de matrices es igual a la declaración de variables, en las que usan las instrucciones (dim, static, private o public). Diferencia en la declaración de variables escalares y variables matriz: Variables Matriz Especifica el tamaño de la matriz. Ejemplo: Dim matriz(3,5) as Double Variables Escalares Son aquellas que no son matrices. Ejemplo: Dim número as Integer Matriz Fija: En la siguiente línea de código se declara como matriz Integer una matriz de tamaño fijo con 11 filas y 11 columnas: Dim MiMatriz(10, 10) As Integer

El primer argumento corresponde al número de filas y el segundo al número de columnas.

Para declarar una matriz fija se debe especificar su tamaño.

Ejemplo: Dim matriz(3, 5) as Double Static matriz(8, 10) as Integer Public matriz(2, 6) as Single



El tamaño máximo de una matriz dependerá del sistema operativo y cantidad de memoria disponible.

Matriz Dinámica: Al declarar una matriz dinámica se puede cambiar el tamaño de una matriz mientras que el código se está ejecutando. Para declarar una matriz dinámica se usan las instrucciones Static, Dim, Private, o Public, dejando los paréntesis vacíos, tal y como se muestra en el siguiente ejemplo. Dim MatrizSingle() As Single

Para declarar una matriz dinámica no se debe especificar su tamaño, por lo que puede cambiar su tamaño mientras se ejecute el código. Ejemplo: Dim matriz() as Double Static matriz() as Integer Public matriz() as Single Declarar matrices dinámicas Cuando hacemos una selección con el mouse, es conveniente entrar los valores seleccionados en una matriz dinámica, es decir, una matriz que se ajuste a la cantidad de datos seleccionada y que, eventualmente, se pueda recortar o hacer más grande. Una matriz dinámica matriz1 de datos enteros se declara de la siguiente forma: Dim matriz1() As Integer Declara una matriz dinámica. Las instrucciones siguientes cambian el tamaño de la matriz matriz1 y la comienza. Observe el uso de Redim para cambiar el tamaño de la matriz dinámica.

Dim mtr1() As Integer ' Declara una matriz dinámica. Dim r() as Double Redim matriz1(10) ' Cambia el tamaño a 10 elementos, 1x10. Redim r(n,m) ' Cambia tamaño a n x m For i = 1 To 10 ' Bucle 10 veces. matriz1(i) = i ' Inicializa la matriz. Next i Notas sobre la declaración de matrices: 1. Se puede usar la instrucción ReDim, que permite declarar expresamente una matriz dentro de un procedimiento para cambiar el número de dimensiones, definir el número de elementos y limites superior e inferior para cada dimensión. Ejemplo: ReDim matriz(10) as Double ReDim matriz(5, 5) as Single 2.Se puede usar la instrucción ReDim Preserve, que permite ampliar una matriz conservando los valores que contiene. Ejemplo: • Añadir 8 nuevos elementos a la matriz (matriznum) ReDim Preserve matriznum(Ubound(matriznum) + 8) 

La función UBound y la función LBound sirven para determinar el tamaño de una matriz.

* La función LBound se usa para encontrar el límite inferior de la dimensión de una matriz. * La función UBound se usa para encontrar el límite superior de la dimensión de una matriz.



Preserve es una palabra clave utilizada para conservar los datos de una matriz existente cuando se cambia el tamaño de la última dimensión; es opcional.

¿QUE ES UNA MATRIZ? Una matriz es una serie de elementos que forman filas (matriz bi-dimensional) o filas y columnas (matriz tri-dimensional).

*matriz bidimensional: 1 3 6 9

12

*matriz tridimensional:

2,1,1 2,2,8 2,3,2 2,4,4 2,5,8

Al trabajar en Excel, las fórmulas que hacen referencia a matrices se encierran entre corchetes {}. Hay que tener en cuenta al trabajar con matrices lo siguiente: -No se puede cambiar el contenido de las celdas que componen la matriz -No se puede eliminar o mover celdas que componen la matriz -No se puede insertar nuevas celdas en el rango que compone la matriz Ejemplo: A

B

C

D

1 2 4 6 8 2 1 2 3 4 3 5 6 7 8 4 1 2 3 4 5 =SUMA(A1:D4) =66

Operadores Reglas de prioridad

Cuando las expresiones contienen operadores de más de una categoría, dichos operadores se evalúan de acuerdo con las siguientes reglas: •Los operadores aritméticos y de concatenación tienen el orden de prioridad que se describe a continuación; todos ellos tienen mayor prioridad que los operadores lógicos, de comparación y bit a bit.

•Todos los operadores de comparación tienen la misma prioridad; todos ellos tienen mayor prioridad que los operadores lógicos y los operadores bit a bit, pero menor prioridad que los operadores de concatenación y los operadores aritméticos. •Los operadores lógicos y los operadores bit a bit tienen el orden de prioridad que se describe a continuación; todos ellos tienen menor prioridad que los operadores aritméticos, de concatenación y de comparación. •Los operadores con la misma prioridad se evalúan de izquierda a derecha en el orden en que aparecen en la expresión. Operadores aritméticos Nos permiten realizar operaciones numéricas con nuestras variables + Suma - Resta 

Multiplicación

/ División % Devuelve el resto de la división Referencia: El operador aritmético que puede resultar más desconocido para los lectores es el operador %. Explicamos con mayor detenimiento su funcionamiento y un ejemplo en el que es útil en el taller: Listas de elementos con colores alternos en PHP. Operadores de comparación Se utilizan principalmente en nuestras condiciones para comparar dos variables y verificar si cumple o no la propiedad del operador. == Igualdad != Desigual < Menor que Mayor que >= Mayor igual que Operadores lógicos Se usan en combinación con los operadores de comparación cuando la expresión de la condición lo requiere. And Y Or O ! No Operadores de incremento Sirven para aumentar o disminuir de una unidad el valor de una variable ++$variable Aumenta de 1 el valor de $variable --$variable Reduce de uno el valor de $variable Operadores combinados Una forma habitual de modificar el valor de las variables es mediante los operadores combinados: $variable += 10 Suma 10 a $variable $variable -= 10 Resta 10 a $variable $variable .= "añado" Concatena las cadenas $variable y "añado"

Este tipo de expresiones no son más que abreviaciones de otras formas más clásicas: $variable += 10 es lo mismo que: $variable = $variable+10 Los operadores especifican el tipo de cálculo que se desea realizar con los elementos de una fórmula. Microsoft Excel incluye cuatro tipos diferentes de operadores de cálculo: aritmético, comparación, texto y referencia Un operador es un elemento de código que realiza una operación en uno o más elementos de código que contienen valores. Los elementos de valor incluyen variables, constantes, literales, propiedades, valores devueltos de procedimientos Function y Operator y expresiones. Cuando hay multiplicación y división en la misma expresión, cada operación se evalúa a medida que aparece, de izquierda a derecha. Tipos de Operadores Los cuales son mas comunes en Visual Basic proporciona los tipos siguientes de operadores: Operadores aritméticos, realizan los cálculos familiares en valores numéricos, incluido el desplazamiento de sus modelos de bits. Operadores de comparación, comparan dos expresiones y devuelven un valor Boolean que representa el resultado de la comparación. Operadores de concatenación, combinan varias cadenas en una sola. Operadores lógicos y bit a bit en Visual Basic, combinan valores Boolean o numéricos y devuelven un resultado del mismo tipo de datos que los valores. Los elementos de valor que se combinan con un operador se denominan operandos de ese operador. Los operadores combinados con los elementos de valor forman expresiones, salvo el operador de asignación, que forma una instrucción. Para obtener más información, vea Instrucciones de asignación. Cuando hay varias operaciones en una misma expresión, cada parte de la misma se evalúa y se resuelve en un orden predeterminado según la prioridad de los operadores. en todos los lenguajes de programacion se utiliza operadores para efectuar operaciones aritmeticas,combinando asi variables y constantes.

Los operadores son símbolos que permitirán que los usuarios realicen una acción (operación) entre uno o más argumentos; el mismo que dará una solución de acuerdo a lo planteado. LOS TIPOS DE OPERADORES MAS UTILIZADOS SON: * Operadores Lógicos * Operadores Aritméticos * Operadores de Relación (comparación)

* Operadores de Concatenación * operadores de bits * operadores condicionales

OPERADORES LÓGICOS: Los operadores lógicos dan un resultado a los usuario, ya sea que se cumpla o no una condición. Una función lógica se forma si se combinan 2 o más operadores lógicos. Los operadores lógicos son 3: NO/NOT: Negación Y/AND: Conjunción O/OR: Disyunción

Analizando el operador lógico Y. Para analizar el funcionamiento de este operador lógico vamos a plantear un pequeño caso para ver que es lo que ocurriría en diferentes momentos. Tenemos a nuestro Robot moviéndose libremente por nuestra pasarela con 10 posiciones y queremos que mire si se encuentra en la posicion 5 y si el bloque que tiene encima se llama A. Si es así deberá cogerlo y llevarlo a la primera posicion. En un principio podríamos pensar en utilizar un Si dentro de otro, pero como ya hemos dicho muchas veces, cuantas menos líneas tenga el código de un programa, en un principio mejor. Veamos igualmente como sería el código utilizando un Si anidado con otro. En un principio en el primero de los "Sis" podemos preguntar por cualquiera de las condiciones que se deben cumplir y dentro por la que queda. Dentro de los dos "Sis" pondremos las líneas que se debe ejecutar en caso de que las dos condiciones sean Verdaderas. (Solo escribiremos las líneas en las que se utiliza la instruccion Si). Te recomiendo que antes de continuar mira la página de instrucciones de nuestro lenguaje. Si Posicion = 5 entonces Si BloqueEncima = "A" entonces

Instrucciones a realizar... Fin Si Fin Si Este sería el código con un Si dentro de otro. ¿Que es lo que haría el programa cuando llegara a estas líneas? Primero miraría la primera condicion si esta se cumple, si es verdadera, pasaría a la siguiente línea, miraría si esta condicion se cumple, en caso afirmativo realizaría las instrucciones que hubieran dentro. Si cualquiera de las dos condiciones que tenemos en este ejemplo no se cumplieran el programa no realizaría las instrucciones internas. Ahora vamos a ver como podemos implementar las mismas funciones pero todo dentro de un mismo Si. En un principio la estructura del Si es exactamente igual, lo único que debemos pensar es que tendremos que separar las dos condiciones mediante un nexo. En este caso como queremos que se cumplan las dos condiciones utilizaremos un nexo Y. Veamos como quedaría el ejemplo y después pasaremos a comentarlo viendo su funcionamiento en diferentes casos. Si Posicion = 5 Y BloqueEncima = "A" entonces Instrucciones a realizar... Fin Si Observa como el número de líneas se ha reducido. Ahora vamos a plantear las diferentes opciones con las que nos podemos encontrar y si realizaría o no las instrucciones que se encuentran dentro del Si. Recuerda que las condiciones solo pueden ser Verdaderas o Falsas. Posicion = 5 BloqueEncima = "A" Instrucciones a realizar... Verdadero Verdadero Verdadero Verdadero Falso Falso Falso Verdadero Falso Falso Falso Falso Observa que el único caso en el que se realizarían las instrucciones sería en el que se cumplen las dos condiciones planteadas en el Si. Por el contrario si una de las dos instrucciones no se cumple las instrucciones no se ejecutarían. Fíjate bien en el cuadro e inténtalo entender. Analizando el operador lógico O. Para analizar el funcionamiento de este otro operador lógico vamos a plantear otro pequeño caso para ver que es lo que ocurriría en diferentes momentos. Tenemos a nuestro Robot, otra vez, moviéndose libremente por nuestra pasarela con 10 posiciones y queremos que mire si el bloque que tiene encima se llama A o si se llama B. Si es así deberá coger el bloque y llevarlo a la primera posicion.

Para poder realizar este pequeño ejemplo sin utilizar los operadores lógicos deberíamos utilizar dos instrucciones Si de la siguiente manera: Si BloqueEncima = "A" entonces Instrucciones a realizar... Fin Si Si BloqueEncima = "B" entonces Instrucciones a realizar... Fin Si ¿Que es lo que haría el programa cuando llegara a estas líneas? Primero miraría el primer Si si se cumpliera realizaría las instrucciones que tenemos en el interior, sino pasaría al siguiente Si y miraría la siguiente condicion, aquí, si esta condicion se cumple se realizan las instrucciones que tenemos en el interior. De tal manera que aquí, si una de las dos condiciones se cumple se realizarían las instrucciones. Piensa que no podemos utilizar un Sino dentro del primer Si ya que podría ser que nos encontrásemos con un bloque llamado C con lo que también se realizarían las instrucciones, cosa que no nos interesa. Por eso ponemos dos Si para comprobar que el bloque de encima se llama A o se llama B. Ahora vamos a ver como podemos implementar las mismas funciones pero todo dentro de un mismo Si. En un principio la estructura del Si es exactamente igual, lo único que debemos pensar es que tendremos que separar las dos condiciones mediante un nexo. En este caso como queremos que se cumpla una de las dos condiciones utilizaremos un nexo O. Veamos como quedaría el ejemplo y después pasaremos a comentarlo viendo su funcionamiento en diferentes casos. Si BloqueEncima = "A" O BloqueEncima = "B" entonces Instrucciones a realizar... Fin Si Observa como el número de líneas se ha reducido y más pensando que tendríamos que repetir las instrucciones internas dos veces. Ahora vamos a plantear las diferentes opciones con las que nos podemos encontrar y si realizaría o no las instrucciones que se encuentran dentro del Si. Recuerda que las condiciones solo pueden ser Verdaderas o Falsas. BloqueEncima = "A" BloqueEncima = "B" Instrucciones a realizar... Verdadero Verdadero Verdadero Verdadero Falso Verdadero Falso Verdadero Verdadero Falso Falso Falso Observa que el único caso en el que no se realizarían las instrucciones sería en el que no se cumple alguna de las dos condiciones planteadas en el Si. De forma que si una de las dos condiciones es verdadera las instrucciones se realizan. Fíjate bien en el cuadro e inténtalo entender. OPERADORES ARITMÉTICOS:

Los operadores aritméticos son aquellos que dan un resultado al usuario de forma numérica, es decir realizan las operaciones matemáticas como sumas, restas, multiplicaciones, etc. Los operadores aritméticos son binarios explicados con anterioridad tienen su correspondiente asignacion como son: Operador Suma (+) Operador Operador Operador Operador Operador

Resta (-) Producto (*) División (/) MOD Potencia (^)

Operadores aritméticos (Visual Basic) Operador suma: sirve para obtener el resultado de la suma de dos o más números o también tener como resultado una cadena, en el caso de cadenas. Ejemplo: Sub suma () Dim dato1 as integer Dim dato2 as integer Dim dato3 as integer dato1 = 6 dato2 = 3 dato3 = 9 resultado = (dato1 + dato2 + dato3) MsgBox resultado

End sub Sub cadena () Dim dato1 as string Dim dato2 as string Dim dato3 as string dato1 = “HOLA “ dato2 = “A “ dato3 = “TODOS” resultado = (dato1 + dato2 + dato3) ; ( + o &) MsgBox resultado

End sub Operador resta: sirve para obtener el resultado de la diferencia de dos o más números o para indicar el valor negativo de una expresión. Ejemplo:

Sub resta () Dim dato1 as double Dim dato2 as double dato1 = 6.5 dato2 = 3.8 resultado = (dato1 - dato2) MsgBox resultado

End sub Operador producto: sirve para obtener el resultado de la multiplicación de dos o más números. Ejemplo: Sub multiplicación () Dim dato1 as double Dim dato2 as double Dim dato 3 as double dato1 = 2.4 dato2 = 1.8 dato3 = 3.5 resultado = (dato1 * dato2 * dato3) MsgBox resultado

End sub Operador división: sirve para obtener el resultado de la división de dos números y obtener un resultado entero. Ejemplo: Sub divisón () Dim dato1 as integer Dim dato2 as integer dato1 = 225 dato2 = 55 resultado = (dato1 / dato2) MsgBox resultado

End sub Operador MOD: divide 2 números y devuelve sólo el resto; es decir que toma el residuo y desecha el cociente Ejemplo:

Sub divisón() Dim dato1 As Integer Dim dato2 As Integer dato1 = 225 dato2 = 55 resultado = (dato2 Mod dato1) MsgBox resultado

End Sub Operador potencia: se utiliza para elevar un número a la potencia del exponente. Ejemplo: Sub potencia() Dim num As Integer Dim exponente As Integer num = 2 exponente = 2 resultado = num ^ exponente MsgBox resultado

End Sub OPERADORES DE COMPARACIÓN Los operadores de comparación son aquellos que comparan dos expresiones y devuelven un valor. SÍMBOLO.......................................................SIGNIFICADO .....................................................................Mayor que =....................................................................Mayor igual que ....................................................................Diferente que =.....................................................................Igual que con estos operadores se puede escribir de la forma mas rapida expresiones de tipo: ejemplo: n=n+3 se puede escribir de la manera n+=3 Operadores de comparación Se utilizan para comparar expresiones.

Sintaxis resultado = expresión1 operadorcomparación expresión2 resultado = objeto1 Is objeto2 resultado = cadena Like patrón

Los operadores de comparación constan de las siguientes partes: Parte Descripción resultado Requerido; cualquier variable numérica. expresión Requerido; cualquier expresión. operadorcomparación Requerido; cualquier operador de comparación. objeto Requerido; cualquier nombre de objeto. cadena Requerido; cualquier expresión de cadena. patrón Requerido; cualquier expresión de cadena o intervalo de caracteres.

Comentarios Esta tabla contiene una lista de los operadores de comparación y de las condiciones que determinan si el resultado es True, False o Null: Operador True si False si Null si < (Menor que) expresión1 < expresión2 expresión1 >= expresión2 expresión1 o expresión2 = Null (Mayor que) expresión1 > expresión2 expresión1 = (Mayor o igual que) expresión1 >= expresión2 expresión1 < expresión2 expresión1 o expresión2 = Null = (Igual a) expresión1 = expresión2 expresión1 expresión2 expresión1 o expresión2 = Null (Distinto de) expresión1 expresión2 expresión1 = expresión2 expresión1 o expresión2 = Null

Nota Los operadores Is y Like tienen funciones de comparación específicas que difieren de las de los operadores incluidos en la siguiente tabla. Cuando se comparan dos expresiones, puede ser difícil determinar si éstas se comparan como números o como cadenas de caracteres. En la siguiente tabla se muestra el modo en que se comparan expresiones y cuál es el resultado cuando cualquiera de las expresiones no es del tipo Variant: Si Entonces Ambas expresiones son de tipos de datos numéricos (Byte, Boolean, Integer, Long, Single, Double, Date, Currency o Decimal) Se efectúa una comparación numérica. Ambas expresiones son de tipo String Se efectúa una comparación de cadenas. Una expresión es de tipo de datos numérico y la otra es un tipo Variant que es, o puede ser, un número Se efectúa una comparación numérica. Una expresión es de tipo de datos numérico y la otra es un tipo Variant de cadena de caracteres que no se puede convertir en un número Provoca un error de Error de tipos. Una expresión es de tipo String y la otra es cualquier tipo Variant, con excepción de Null Se efectúa una comparación de cadenas. Una expresión es Empty y la otra es del tipo de datos numérico Se efectúa una comparación numérica,

usando 0 como la expresión Empty. Una expresión es Empty y la otra es del tipo String Se efectúa una comparación de cadenas, utilizando una cadena de caracteres de longitud cero ("") como la expresión Empty.

Si tanto expresión1 como expresión2 son del tipo Variant, el tipo subyacente de las mismas es el que determina la manera en que se comparan. En la siguiente tabla se muestra el modo en que se comparan las expresiones y cuál es el resultado de la operación de acuerdo con el tipo subyacente de Variant: Si Entonces Ambas expresiones tipo Variant son numéricas Se efectúa una comparación numérica. Ambas expresiones tipo Variant son cadenas de caracteres Se efectúa una comparación de cadenas. Una expresión tipo Variant es numérica y la otra es una cadena de caracteres La expresión numérica es menor que la expresión de cadena. Una expresión tipo Variant es Empty y la otra es numérica Se efectúa una comparación numérica, usando 0 como la expresión Empty. Una expresión tipo Variant es Empty y la otra es una cadena de caracteres Se efectúa una comparación de cadenas, utilizando una cadena de caracteres de longitud cero ("") como la expresión Empty. Ambas expresiones tipo Variant son Empty Las expresiones son iguales.

Cuando se compara un tipo Single con un tipo Double, éste se redondea al grado de precisión del tipo Single. Si una expresión tipo Currency se compara con una de tipo Single o Double, ésta se convierte al tipo Currency. De igual forma, cuando un tipo Decimal se compara con un tipo Single o Double, el tipo Single o el Double se convierten a tipo Decimal. Para el tipo Currency, cualquier valor fraccionario menor que 0,0001 se pierde; para el tipo Decimal, cualquier valor fraccionario menor que 1E-28 se pierde y puede ocurrir un error de desbordamiento. Perder valores fraccionarios puede hacer que dos valores se comparen como iguales cuando en realidad no lo son.

Banco de Preguntas Pregunta 1 ¿Qué son los Operadores? e indique los tipos de Operadores: Los operadores son símbolos que permitirán que los usuarios realicen una acción (operación) entre uno o más argumentos; el mismo que dará una solución de acuerdo a lo planteado. Los elementos de valor incluyen variables, constantes, literales, propiedades, valores devueltos de procedimientos Function y Operator y expresiones, Los operadores nos permiten realizar comparaciones, calculos y cualquier otra operacion.

Una expresión es una serie de elementos de valor combinados con operadores, que produce un nuevo valor. Los operadores actúan sobre los elementos de valor realizando cálculos, comparaciones y otras operaciones. LOS TIPOS DE OPERADORES: * Operadores Lógicos.- realizan los cálculos familiares en valores numéricos, incluido el desplazamiento de sus modelos de bits. * Operadores Aritméticos.- comparan dos expresiones y devuelven un valor Boolean que representa el resultado de la comparación. * Operadores de Relación (comparación.- combinan varias cadenas en una sola. * Operadores de Concatenación.- combinan valores Boolean o numéricos y devuelven un resultado del mismo tipo de datos que los valores.

Los elementos de valor que se combinan con un operador se denominan operandos de ese operador. Los operadores combinados con los elementos de valor forman expresiones, salvo el operador de asignación, que forma una instrucción.

Pregunta 2 Indique el periodo de vida de las variables y ¿´Cómo pueden ser clasificadas? El periodo de vida de una variable es el tiempo durante el cual la variable está activa, ocupando el espacio de memoria;es decir sera utilizada en un proyrcto determinado y pueden ser clasificados de acuerdo a la siguiente tabla: Ámbito de bloque El periodo de vida de estas variables se desarrolla desde el momento en que son declaradas dentro del bloque y hasta que dicho bloque finaliza. Es un conjunto de instrucciones incluido dentro de las instrucciones de declaración de inicio y fin. Si declara una variable dentro de un bloque, sólo puede utilizarla dentro de ese bloque. En el ejemplo siguiente, el ámbito de la variable de entero cube es el bloque entre If y End If, y las referencias a cube dejan de ser posibles cuando termina la ejecución del bloque. Copiar If n < 1291 Then Dim cube As Integer cube = n ^ 3 End If

Ámbito de procedimiento Para estas variables, su periodo de vida está comprendido entre el momento en que son declaradas y hasta que la ejecución del procedimiento termina Un elemento declarado en un procedimiento no está disponible fuera de él. Solamente el procedimiento que contiene su

declaración puede utilizarlo. Se declaran con Instrucción Dim (Visual Basic), con o sin la palabra clave Static (Visual Basic). Ámbito a nivel de módulo y proyecto En este caso, el periodo de vida de la variable va desde el comienzo de la ejecución de la aplicación y hasta que esta termina. Los elementos para los que se declara el nivel de acceso Private (Visual Basic) están disponibles para todos los procedimientos del módulo, pero no para el código de otros módulos. La instrucción Dim en el nivel de módulo toma Private como valor predeterminado si no utiliza ninguna palabra nivel de acceso. No obstante, el ámbito y el nivel de acceso serán más patentes si utiliza la palabra clave Private en la instrucción Dim.

Pregunta 3 Indique que hace la función Option Explicit e indique sus partes: Esta instrucción exige que todas las variables del módulo se declaren explícitamente. Si un módulo incluye la instrucción Option Explicit, se producirá un error en tiempo de compilación cuando Visual Basic encuentre un nombre de variable que no ha sido previamente declarado, o cuyo nombre se ha escrito incorrectamente. Option Explicit { On | Off } Partes On Opcional. Habilita la comprobación Option Explicit. Si no se especifica On u Off, el valor predeterminado es On. Off Opcional. Deshabilita la comprobación Option Explicit.

Visual Basic es un lenguaje de programación moderno que admite un gran número de constructores comunes de programación y elementos de lenguaje. *Convenciones de código y estructura de programas

En esta sección se introduce la estructura de programas de Visual Basic la cual proporciona un programa del mismo sencillo de en el cual se describen convenciones de código de Visual Basic. Las convenciones de código son sugerencias que no se centran en la lógica de un programa, sino en la apariencia y la estructura física. Estas pueden incluir: Formatos estandarizados para etiquetar y comentar código. -Dar formato y agregar sangria. -Codificacion para objetos, variables y procedimientos. BIBLIOGRAFIA: msdn.microsoft.com/.../y4wf33f0(VS.80).aspx - España -

Pregunta 4 ¿Cual es la diferencia principal entre un vector y una matriz? Que el vector es unidimensional(fila) e inicia desde la posición 0, mientras que la matriz es bidireccional(fila, columna) e inicia desde la posición 1 ¿Que significa que un arreglo se desborde? Es cuando el tamaño de memoria asignado a este no es suficiente para almacenar los datos almacenados es decir a un "vector" que tenga 'n' numero de posiciones si se le asigna un valor en una posicion mayor que 'n' este se desbordará.

Procedimientos y Funciones Los procedimientos o funciones son muy interesantes y útilies en la programación. Nos sirven para realizar una tarea concreta que probablemente se vaya a ejecutar varias veces a lo largo de la vida de la página. Esta tarea se especifica en un bloque de código de manera independiente y cuando se desean realizar las acciones del procedimiento se llama al porcedimiento o función. Una vez realizadas las acciones pertinentes se devuelve el flujo del programa al lugar desde donde se imbocó ese procedimiento o función. Lo primero que debemos hacer al crear un procedimiento es pensar las cosas que se desean hacer dentro de la función, la información que necesitaremos (y que tendremos que recibir como parámetros) y la información que devolverá. Con estas ideas claras se pueden construir los procedimientos y funciones sin mucha dificultad, siguiendo estas estructuras. Para un procedimiento Sub nombre (parametro1, parametro2...) ... Código del procedimiento

end Sub Para una función Function nombre (parametro1, parametro2...) ... Código de la función

end Function

Procedimientos Procedimientos: Es una secuencia con nombre de instrucciones que se ejecutan como una unidad. Un nombre de procedimiento siempre se define a nivel de módulo. Todo el código ejecutable debe estar contenido en un procedimiento. Los procedimientos no se pueden anidar dentro de otros procedimientos. Un procedimiento Sub es una serie de instrucciones Visual Basic, encerradas entre un par de instrucciones Sub y End Sub, que realizan acciones específicas pero no devuelven ningún valor. Puede aceptar argumentos, como constantes, variables o expresiones que le pasa el procedimiento que ha efectuado la llamada. Si un procedimiento Sub no tiene argumentos, la instrucción Sub debe incluir un par de paréntesis vacío. El siguiente procedimiento Sub dispone de comentarios explicativos en cada línea. ' Declara un procedimiento llamado ObtenInformacion ' Este procedimiento Sub no acepta argumentos Sub ObtenInformacion() ' Declara una variable de cadena llamada respuesta Dim respuesta As String ' Asigna el valor que devuelve la funcion InputBox a l variable resp resp = InputBox(Prompt:="¿Cómo se llama?") ' Instrucción condicional If...Then...Else If respuesta = Empty Then ' Llama a la función MsgBox MsgBox Prompt:="No ha escrito su nombre." Else ' Función MsgBox concatenada con la variable respuesta MsgBox Prompt:="Su nombre es " & respuesta ' Fin de la instrucción If...Then...Else End If ' Fin del procedimiento Sub End Sub

Escribir un Procedimiento Sub

para escribir un procedimiento sub se necesita realizar lo siguiente: La sintaxis que define un procedimiento es la siguiente: [Private/Public][Static Sub nombre[(parámetros)] [sentencias] [Exit Sub] [sentencias] End Sub

La explicacion es analoga dada por las funciones(function) La sintaxis correspondiente a una función es la siguiente: [Private/Public] [Static] Function nombre [(parámetros)] [As tipo] [sentencias] [nombre=expresión] [Exit Function] [sentencias] [nombre=expresión] End Funtion

NOMBRE: Es el nombre de la función, su tipo determina el tipo de datos que devuelve la función. Para especificar el tipo, utilice los caracteres de declaración de tipo o la clausula As tipo (Integer, Long, Single, Double, Curency, String (solo de longitud variable), Variant, tipo definido por el usuario, etc.); el tipo es variant por omisión. PARÁMETROS: Son una lista de variables separadas por comas que corresponden con los argumentos que son pasados cuando es invocada la función. Cuando se llama a una función, Visual Basic asigna el valor de cada argumento en la llamada al parámetro de la función. EXPRESIÓN: Define el valor devuelto por la función. Este valor es almacenado en el propio nombre de la función, que actúa como variable dentro del cuerpo de la misma. Si no se efectúa esta asignación, el resultado devuelto será 0 si esta es numérica, nulo (“”) si la función es de carácter, o vacio (Empty). Si la función es Variant. EXIT FUNCTION:

Permite salir de una función. Exit Function no es necesaria a no ser que se necesite retornar a la sentencia situada inmediatamente a continuación de la que efectuo la llamada antes que la función finalice.

END FUNCTION: Esta sentencia, al igual que Exit Funtion, devuelve el control a la sentencia que se encuentra inmediatamente a continuación de la que efectuó la llamada, continuando de esta forma la ejecución del programa. Los procedimientos se invocan desde otras partes del código. Cuando finaliza la ejecución de un procedimiento, éste devuelve el control al código que lo invocó, que recibe el nombre de código de llamada. El código de llamada es una instrucción o una expresión contenida en una instrucción, que hace referencia al procedimiento por su nombre y le transfiere el control. la llamada a un procedimiento puede ser de dos formas: nombre(argumentos)

Para llamar a una Funcion es de la siguiente forma: [variable=] nombre[(argumentos)]

ARGUMENTOS: Son una lista de constantes, variables o expresiones separadas con comas. El número de argumentos debe ser igual al número de parámetros de la función. Los tipos de los argumentos deben coincidir con los tipos de sus correspondientes parámetros. Por compatibilidad con otros lenguajes, es aconsejable escribir los paréntesis cada vez que se llama a una función, aunque esta no tenga argumentos. Una llamada a una función puede formar parte de una expresión.

Llamar a procedimientos Sub y Function Para efectuar una llamada a un procedimiento Sub desde otro procedimiento, escriba el nombre del procedimiento e incluya valores para todos los argumentos requeridos. No es necesaria una instrucción Call, pero si la utiliza, los argumentos deben aparecer encerrados entre paréntesis.

MsgBox Muestra un mensaje en un cuadro de diálogo, espera que el usuario haga clic en un botón y devuelve un valor que indica en que botón hizo clic el usuario. MsgBox ("Mensaje", botones, título, archivo de ayuda, texto) VbOKOnly 0 muestra el botón aceptar VbOKCncel 1 muestra el botón aceptar y cancelar VbYesNo 4 muestra el botón Si y No VALORES QUE DEVUELVE VbOk = Aceptar VbCancel = Cancelar Se puede utilizar un procedimiento Sub para organizar otros procedimientos de forma que sean más fáciles de entender y depurar. En el siguiente ejemplo, el procedimiento Sub Principal efectúa una llamada al procedimiento Sub MultiBeep, pasando como argumento el valor 56. Después de que MultiBeep acaba su ejecución, el control vuelve a Principal y Principal llama al procedimiento Sub Mensaje. Mensaje presenta en pantalla un cuadro de mensaje; cuando el usuario hace clic en Aceptar, el control vuelve a Principal y Principal termina. Sub Principal() MultiBeep 56 Mensaje End Sub Sub MultiBeep(númbips) For contador = 1 To númbips Beep Next contador End Sub Sub Mensaje() MsgBox "¡Es hora de terminar el semestre no podemos seguir sin dormir!" End Sub

Llamar a procedimientos Sub con más de un argumento El siguiente ejemplo muestra dos formas de llamar a un procedimiento Sub con más de un argumento. La segunda vez que se llama a CalcuCasa, es necesario utilizar paréntesis a ambos lados de los argumentos ya que se utiliza la instrucción Call. Sub Principal() CalcuCasa 99800, 43100 Call CalcuCasa(380950, 49500) End Sub Sub CalcuCasa(precio As Single, salario As Single) If 2.5 * salario 25: Grasa1 = "obesidad" End Select Case 40 To 59 Select Case Porcgra Case 0 To 11: Grasa1 = "bajo en grasa" Case 12 To 22: Grasa1 = "normal en grasa" Case 23 To 28: Grasa1 = "alto en grasa" Case Is > 28: Grasa1 = "obesidad" End Select Case 60 To 99 Select Case Porcgra Case 0 To 13: Grasa1 = "bajo en grasa" Case 14 To 25: Grasa1 = "normal en grasa" Case 26 To 30: Grasa1 = "alto en grasa" Case Is > 30: Grasa1 = "obesidad" End Select End Select

End Select End Function

Pregunta 11 Sub Numero() Dim Numero As Integer

Numero = InputBox("numero") Select Case Numero Case 1 To 5 MsgBox prompt:="se encuentra ente 1 y 5" Case 6, 7, 8 MsgBox prompt:="se encuentra entre 6 y 8" Case Else MsgBox prompt:="el numero no se encuentra entre 1 y 8"

End Select End Sub Elija la respuesta correcta: La sentencia SELECT CASE nos permite • Ejecutar una variable en función de un valor numérico o alfanumérico • Ejecutar una acción de entre varias acciones en función del valor de una expresión • Ninguna de las dos son correctas

Pregunta 12 Private Sub btnimprimir_Click() ‘Aplicación para ingresar un código provincial y determinar a que provincia pertenece Application.Workbooks("PRACTICA 3.xlsm").Worksheets("Hoja3").Activate Range("b2").Select Select Case txtctelef Case "02": ActiveCell.FormulaR1C1 = "PROVINCIAS: Pichincha, Santo Domingo de los Tsachilas " MsgBox ("PROVINCIAS: Pichincha, Santo Domingo de los Tsachilas ") Case "03": MsgBox ("PROVINCIAS: Cotopaxi, Tungurahua, Pastaza, Chimborazo, Bolivar ") ActiveCell.FormulaR1C1 = "PROVINCIAS: Cotopaxi, Tungurahua, Pastaza, Chimborazo, Bolivar " Case "06": MsgBox ("PROVINCIAS: Carchi, Esmeraldas, Imbabura, Napo, Orellana, Sucumbios ") ActiveCell.FormulaR1C1 = "PROVINCIAS: Carchi, Esmeraldas, Imbabura, Napo, Orellana, Sucumbios " Case "04": MsgBox ("PROVINCIAS: Guayas, Santa Elena ") ActiveCell.FormulaR1C1 = "PROVINCIAS: Guayas, Santa Elena " Case "05": MsgBox ("PROVINCIAS: Galapagos, Los Rios, Manabi ") ActiveCell.FormulaR1C1 = "PROVINCIAS: Galapagos, Los Rios, Manabi " Case "07": MsgBox ("PROVINCIAS: Azuay, Cañar, El Oro, Loja, Morona, Zamora ") ActiveCell.FormulaR1C1 = "PROVINCIAS: Azuay, Cañar, El Oro, Loja, Morona, Zamora" Case Else MsgBox ("EL CODIGO NO PERTENECE A NINGUNA PROVINCIA")

End Select Selection.EntireRow.Insert txtctelef = Empty txtctelef.SetFocus End Sub Private Sub txtctelef_Change() Range("a2").Select ActiveCell.FormulaR1C1 = txtctelef.Text End Sub

Que línea de código permite almacenar un dato ingresado por teclado en la celda de Excel - Private Sub txtctelef_Change() - Selection.EntireRow.Insert - ActiveCell.FormulaR1C1 = txtctelef.Text - Range("a2").Select RESPUESTA: ActiveCell.FormulaR1C1 = txtctelef.Text

Pregunta 13 En el siguiente código, determmine que respuesta debe salir si, al ingresar dato ubicamos: 9 y al Ingresar Nombre, ubicamos: Scarlet Sub varcost() Dim dato As String Dim nombre As String dato = InputBox("Ingrese Dato") nombre = InputBox("Ingrese Nombre") Select Case dato Case "a", "e", "i", "o", "u": MsgBox "ES VOCAL" Case "0" To "9": MsgBox "ES NUMERO" Case "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", " s", "t", "u", "v", "w", "x", "y", "z": MsgBox "ES CONSONANTE" Case Else MsgBox "Caracter Especial" End Select Select Case nombre Case "Scarlet": MsgBox "Nombre Mujer" Case "Aaron": MsgBox "Nombre Hombre" End Select End Sub

'Opciones:'

a) Imprimirá: ES NUMERO b) Imprimirá: Nombre Mujer c) Imprimirá: CARACTER ESPECIAL d) Imprimirá: Nombre Hombre Respuesta: Imprimirá: ES NUMERO Imprimirá: Nombre Mujer

Pregunta 14 Si el código contenido en un bloque de instrucciones Case o Case Else no necesita ejecutar más instrucciones contenidas en el bloque, puede salir del bloque utilizando la instrucción Exit Select. ¿Esto transfiere inmediatamente el control a la instrucción que sigue a End Select.? Verdadero Falso RESPUESTA: Verdadero

Pregunta 15 'TIMBRE DE TARJETAS DE CONTROL Private Sub TIMBRAR_Click() Select Case TextBox1.Text Case "e" MsgBox "llegada 7:00 am" Case "s" MsgBox "salida 16:00pm " Case Else MsgBox "atrasado" End Select End Sub EN DONDE SE INGRESA LA INFORMACION 1.- TIMBRAR 2.- CASE 3.- MsgBox 4.- TextBox1.Text CORRECTA=4

Pregunta 16 Sub dias_semana() Dim dia dia = InputBox("Dia de la semana") Select Case dia Case 1: MsgBox ("El dia es LUNES") Case 2: MsgBox ("El dia es MARTES")

Case 3: MsgBox ("El dia Case 4: MsgBox ("El dia Case 5: MsgBox ("El dia Case 6: MsgBox ("El dia Case 7: MsgBox ("El dia Case Else: MsgBox ("Tiene End Select End Sub

es MIERCOLES") es JUEVES") es VIERNES") es SABADO") es DOMINGO") que ser un dia de la semana en número, del 1 al 7")

¿Que sucede si le ingresa el dia de la semana "lunes"? a) Imprime Lunes b) Imprime 1 c) Imprime Tiene que ser un dia de la semana en número, del 1 al 7 La respuesta es "C"

Pregunta 17 Private Sub btnimprimir_Click() Select Case txtingrese.Text Case "a" MsgBox "araña" Case "b" MsgBox "burro" Case "c" MsgBox "cocodrilo" Case "d" MsgBox "dragon" Case "e" MsgBox "elefante" Case Else MsgBox " no hay" End Select End Sub

escoja la respuesta correcta: que pasa si ingrsa una letra del abecedario que vaya despues de la e como por ejemplo la letra f a) imprime un valor que diga foca b) imprime no hay

la respuesta es b

Pregunta 18 Private Sub btnimprimir_Click() Select Case txtingrese.Text Case "1" MsgBox "enero" Case "2" MsgBox "febrero" Case "3" MsgBox "marzo" Case "4" MsgBox "abril" Case "5" MsgBox "mayo" Case "6" MsgBox "junio" Case "7" MsgBox "julio" Case "8" MsgBox "agosto" Case "9" MsgBox "septiembre" Case "10" MsgBox "octubre" Case "11" MsgBox "noviembre" Case "12" MsgBox "diciembre" Case Else MsgBox " no existe mes con ese numero" End Select End Sub

¿Que pasa si ingresa un numero que va del 1 al 12? imprime un mes del año de acuerdo al numero

Pregunta 19 ¿Cuándo las expresiones contenidas en 'expressionlist' pueden ser de cualquier tipo de datos? Siempre que sean implícitamente convertibles al tipo de testexpression y el correspondiente comparisonoperator sea válido para los dos tipos con los que se utilice.

Pregunta 20 ¿En la sintaxis de Select...case, la expresión es de carácter... y qué tipo de datos evalúa?

Es de carácter Obligatorio. 

Boolean



Byte



Char



Date



Double



Decimal



Integer



Long



Object



SByte



Short



Single



String



UInteger



ULong



UShort

Pregunta 21 Esta aplicacion nos permite escoger mediante un menu si deseamos calcular la raiz cuadrada de un numero o el area de un triangulo Verificar si el codigo es Correcto Sub main() Dim base, altura, resp, raizr, respr As Double opc = InputBox("Ingrese que operacion desea realizar (1.Calcular Raiz Cuadrada 2.Calcular el area del triangulo)")

Select Case Case 1 raizc = InputBox("Ingrese el numero para sacar la raiz cuadrada") respr = Sqr(raizc) MsgBox ("La raiz cuadrada es: " & respr) Case 2 base = altura resp = MsgBox End Select End Sub

InputBox("Ingrese la base del triangulo") = InputBox("Ingrese la altura del triangulo") (base * altura) / 2 ("El area del triqangulo es: " & resp)

**** Su respuesta es: **** A) Se ejecuta correctamente B) Tiene errores que son...... Respueta: B (No esta declarada y colocada la variable de entrada al select case opc)

Instrucciones DO LOOP Los bucles sirven para repetir instrucciones varias veces. A lo mejor tienes una columna en Excel con 25.000 nombres, y quieres sacar las personas cuyos apellidos empieza con “Lo”. En este caso se puede emplear un bucle que evalua todos estos nombres según el criterio “Lo”, uno por uno. Repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias. Tanto, que puede reemplazar a FOR…NEXT en casi todos los casos. Con él se pueden crear una gran variedad de bucles diferentes, dependiendo si comprueban una condición antes de ejecutar el bucle una vez; después de la primera ejecución; mientras que se cumple la condición o hasta que la mencionada condición se cumpla. La sintaxis básica de esta estructura es la siguiente: Do

Instrucciones… [Exit Do] Instrucciones… Loop

Esta es la forma más simple de escribir este tipo de bucle. Las instrucciones comprendidas entre el Do y el Loop se ejecutaran indefinidamente. Resulta muy apropiado para aquellos casos en que nuestro programa se encuentra esperando que ocurra alguna situación determinada, a la vez que repite un grupo de instrucciones.

Do { While | Until } condition [ statements ] [ Exit Do ] [ statements ] Loop -orDo [ statements ] [ Exit Do ] [ statements ] Loop { While | Until } condition

Ejemplo: Private Sub CommandButton1_Click() Dim counter As Integer Hacer contador = contador + 1 Las celdas (contador, 1) = contador Loop While contador < 10 End Sub

En este ejemplo, el programa seguirá sumando 1 al valor anterior del mostrador, siempre y cuando el valor del contador es menor que 10. Muestra 1 en las celdas (1,1), 2 en las celdas (2,1) ...... Hasta 10 en las células (10,1). Bucles Do… Loop Repite las instrucciones mientras/hasta etc. una condición es TRUE/VERDADERO. Do while… Loop Repite las instrucciones mientras una condición es TRUE/VERDADERO. i=1 Do While Cells(i, 2) "" f Cells(i, 1)>= 1.5 Then Exit Do i = i + 1

Loop MsgBox "El valor se encontró en fila no. " & i Do until… Loop Repite las instrucciones hasta que una condición se convierta en TRUE/VERDADERO.

i=1

Do Until Cells(i, 1) = "AA" i = i + 1

Loop MsgBox "El nombre AA se encontró en la línea " & i While… Wend Igual al bucle Do while… Loop. Bucles For… Next Repite las instrucciones un número especificado de veces. For i… Next Repite las instrucciones i veces. Ejemplo: Creamos un bucle sencillo. Queremos que se repita 4 veces, y que la variable intValor (al empezar = 1) se incremente con 2 cada vuelta. Este nos da el resultado intValor = 9 (1+2+2+2+2). Observa que el bucle tiene step 1. Esto significa que i se incrementa con 1 cada vuelta. Esto es, que si queremos un bucle que vaya para atrás, pondríamos step -1.

intValor = 1 For i = 1 to 4 step 1 intValor = intValor + 2 Next i For each… Next Repite las instrucciones según el número de objetos especificados, por ejemplo For each cell de un rango en Excel. Ejemplo En este ejemplo vamos a construir un bucle que evalua cada celda de un rango. El rango será celdas A1:A5, que se escribe como Range(Cells(1, 1), Cells(5, 1). Con el Exit For salimos del bucle al cumplir la condición. Dim rngArea rngArea = Range(Cells(1, 1), Cells(5, 1)) For Each Cell In rngArea If Cell = "Alexis" Then MsgBox "¡Encontró Alexis" Exit For End If

Next PRIMERA FORMA DE ESCRIBIR UN BUCLE La opción “Exit Do” permite abandonar el bucle cuando lo deseemos. En general, una sentencia “If…Then” comprueba el valor de alguna expresión, y cuando dicha expresión es verdadera, se ejecuta el “Exit Do”. El siguiente ejemplo ilustra este caso: Dim edad As Integer edad = 20 Do edad = edad - 1 If edad = 0 Then Exit Do End If Loop

Como puede verse, el bucle se repetirá mientras que el valor de “edad” sea diferente de cero. Cuando esto ocurre, la condición que evalúa el “If…Then” será verdadera y el control del programa saltará a la instrucción que haya a continuación del “Loop”. SEGUNDA FORMA DE ESCRIBIR UN BUCLE DO-LOOP Do { While | Until } condición Instrucciones… [Exit Do] Instrucciones… Loop

Por supuesto, no podemos utilizar “While” y “Until” a la vez. En esta forma del bucle, la condición se evalúa al comienzo del mismo. En el caso de utilizar la opción “While”, el bucle se repetirá mientras que la condición sea verdadera. Podemos escribir el ejemplo anterior utilizando esta posibilidad: Do While edad 0 edad = edad - 1 Loop

Como puede verse, es mucho más simple utilizar “While” que “If…Then” y “Exit Do”. Aclaramos que la condición evalúa que edad sea diferente de cero. También podríamos haber resuelto el problema con el uso de “Until”: Do Until edad = 0 edad = edad - 1 Loop

En este caso, el bucle se repetirá hasta que edad sea igual a cero. En estos dos ultimo ejemplos puede darse el caso de que, si edad es igual a cero cuando se llega a la instrucción “Do”, las instrucciones existentes en el interior del bucle no se ejecuten nunca. TERCERA FORMA DE ESCRIBIR UN NUCLE DO-LOOP Do Instrucciones… [Exit Do] Instrucciones…

Loop { While | Until } condición Como puede verse, se ha delegado la capacidad de evaluar la condición al final del bucle. Esto tiene la particularidad de permitir que el grupo de instrucciones existentes en el interior del bucle se ejecuten al menos una vez, independientemente de que la condición a evaluar sea o no verdadera. Nuestro ejemplo podría resolverse así: Dim edad As Integer edad = 20 Do edad = edad - 1 Loop Until edad = 0

O asi: Dim edad As Integer edad = 20 Do edad = edad - 1 Loop While edad 0

Además en todos los casos puede utilizarse, entre las instrucciones que están dentro del bucle, la sentencia “Continue Do”, que hace que el control del programa salte nuevamente al '“Do…”,' repitiendo el ciclo actual.

Utilizar instrucciones Do...LoopTexto en negrita` Repite un bloque de instrucciones cuando una condición es True o hasta que una condición se convierta en True. Sintaxis Do [{While | Until} condición] [instrucciones] [Exit Do] [instrucciones]

Loop

O bien, puede utilizar esta sintaxis: Do [instrucciones] [Exit Do] [instrucciones] Loop [{While | Until} condición]

La sintaxis de la instrucción Do Loop consta de las siguientes partes: Parte Descripción condición Opcional. Expresión numérica o expresión de cadena que es True o False. Si la condición es Null, condición se considera False. Instrucciones Una o más instrucciones que se repiten mientras o hasta que condición sea True.

Se pueden usar instrucciones Do...Loop para ejecutar un bloque de instrucciones un número indefinido de veces. Las instrucciones se repiten mientras una condición sea True o hasta que llegue a ser True. Repetir instrucciones mientras una condición es True Hay dos formas de utilizar la palabra clave While para comprobar el estado de una condición en una instrucción Do...Loop. Se puede comprobar la condición antes de entrar en el bucle, o después de que el bucle se haya ejecutado al menos una vez. En el siguiente procedimiento ComPrimeroWhile, la condición se comprueba antes de entrar en el bucle. Si miNum vale 9 en vez de 20, las instrucciones contenidas en el bucle no se ejecutarán nunca. En el procedimiento ComFinalWhile, las instrucciones contenidas en el bucle sólo se ejecutarán una vez antes de que la condición llegue a ser False. Sub ComPrimeroWhile() contador = 0 miNum = 20 Do While miNum > 10 miNum = miNum - 1 contador = contador + 1 Loop MsgBox "El bucle se ha repetido " & contador & " veces." End Sub

Sub ComFinalWhile() contador = 0 miNum = 9 Do miNum = miNum - 1

contador = contador + 1 Loop While miNum > 10 MsgBox "El bucle se ha repetido " & contador & " veces." End Sub

Repetir instrucciones hasta que una condición llegue a ser True Hay dos formas de utilizar la palabra clave Until para comprobar el estado de una condición en una instrucción Do...Loop. Se puede comprobar la condición antes de entrar en el bucle (como muestra el procedimiento ComPrimeroUntil) o se pueden comprobar después de que el bucle se haya ejecutado al menos una vez (como muestra el procedimiento ComFinalUntil). El bucle sigue ejecutándose mientras la condición siga siendo False. Sub ComPrimeroUntil() contador = 0 miNum = 20 Do Until miNum = 10 miNum = miNum - 1 contador = contador + 1 Loop MsgBox "El bucle se ha repetido " & contador & " veces." End Sub

Sub ComFinalUntil() contador = 0 miNum = 1 Do miNum = miNum + 1 contador = contador + 1 Loop Until miNum = 10 MsgBox "El bucle se ha repetido " & counter & " veces." End Sub

Instrucción de salida de Do...Loop desde dentro del bucle Es posible salir de Do...Loop usando la instrucción Exit Do. Por ejemplo, para salir de un bucle sin fin, se puede usar la instrucción Exit Do en el bloque de instrucciones True de una instrucción If...Then...Else o Select Case. Si la condición es False, el bucle seguirá ejecutándose normalmente. En el siguiente ejemplo, se asigna a miNum un valor que crea un bucle sin fin. La instrucción If...Then...Else comprueba esa condición y ejecuta entonces la salida, evitando así el bucle sin fin. Sub EjemploSalida() contador = 0 miNum = 9 Do Until miNum = 10 miNum = miNum - 1 contador = contador + 1 If miNum < 10 Then Exit Do Loop MsgBox "El bucle se ha repetido " & contador & " veces." End Sub

Nota Para detener la ejecución de un bucle sin fin, presione la tecla ESC o CTRL+PAUSE.

Ejemplo de la instrucción Do...Loop En este ejemplo se muestra cómo se pueden utilizar las instrucciones Do...Loop. La instrucción interna Do...Loop hace un bucle 10 veces, establece el valor del indicador a False y sale prematuramente mediante la instrucción Exit Do. El bucle externo sale inmediatamente al comprobar el valor del indicador. Dim Comprobar, Contador Comprobar = True: Contador = Do ' Bucle externo. Do While Contador < 20 Contador = Contador + If Contador = 10 Then Comprobar = False Exit Do ' Sale End If Loop Loop Until Comprobar = False

0

' Inicializa variables.

' Bucle interno. 1 ' Incrementa el contador. ' Si la condición es verdadera. ' Establece el valor a False. del bucle interno. 'Sale inmediatamente del bucle externo.

Se utiliza una instrucción Do...Loop cuando deseamos repetir un conjunto de instrucciones un número indefinido de veces, hasta que se satisfaga una condición. Repite un bloque de instrucciones mientras una condición Boolean sea True o hasta que la condición se convierta en True.

Do { While | Until } condition [ statements ] [ Exit Do ] [ statements ]

Loop -orDo [ statements ] [ Exit Do ] [ statements ]

Loop { While | Until } condition

Partes While Obligatorio si se utiliza Until. Repite el bucle hasta que condition sea False. Until Obligatorio a menos que se utilice While. Repite el bucle hasta que condition sea True. condition Opcional. Expresión Boolean. Si condition es Nothing, Visual Basic la trata como False. statements Opcional. Una o más instrucciones que se repiten mientras o hasta que condition sea True. Exit Do Opcional. Transfiere el control fuera del bucle Do. Loop Obligatorio. Termina la definición del bucle Do. Utilice una estructura Do...Loop cuando desee repetir un conjunto de instrucciones un número indefinido de veces, hasta que se satisfaga una condición. Si desea repetir las instrucciones un número fijo de veces, la Instrucción For...Next es normalmente una opción mejor. La estructura Do...Loop proporciona mayor flexibilidad que laInstrucción While...End While (Visual Basic) porque permite elegir si se debe finalizar el bucle cuando condition deja de ser True o cuando es True por primera vez. También le permite probar condition al principio o al final del bucle. Condición expresada al lado del DO: en este caso la condición se evalua antes de empezar a ejecutarse el bucle. Condición expresada al lado del LOOP: en este caso la condición se evalua después de ejecutarse el bucle. Tiene como diferencia principal frenta al otro método que en este caso el bucle se ejecutará por lo menos una vez. Además de poder expresar la condición en estos dos sitios también se puede construir la condición con un enunciado mientras (WHILE) o un enunciado hasta (UNTIL). Las diferencias semanticas de estas dos posibilidades se trasladan también a su manera de funcionar.

Vamos a ver un par de ejemplos de este bucle para comprender su funcionamiento. El ejemplo pide cunstantemente el nombre del autor de la página y no para hasta que el nombre sea "migue". También tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompiéndolo con la sentencia EXIT DO, utilizada para romper bucles. Dim entrada entrada = "" DO WHILE (entrada "migue") entrada = inputbox ("Dime el nombre del autor","seguridad","migue",2,3) if (entrada = "out") then msgbox "salgo por la puerta de atras" exit do end if

LOOP Podemos ver este ejemplo en funcionamiento. El siguente ejemplo realiza una cuenta y entre cuenta y cuenta se muestra el valor de la cuenta actual en una ventanita donde sale un botón de Reintentar y otro de Cancelar. Si se pulsa reintentar se sigue ejecutando el bucle y si se pulsa Cancelar se sale por la puerta de atrás, de manera similar a como se salía en el ejemplo anterior, con EXIT DO. option explicit dim cont dim respuesta cont = 0 DO cont = cont +1 respuesta = msgbox (cont,69,"Variable del bucle, con valor 6 se sale") if (respuesta = 2) then msgbox "Cuenta Cancelada",16,"Cancelaste!" exit do end if

LOOP UNTIL (cont = 6) El ejemplo es un poco rarito, pero servirá para comprender estos bucles. Se puede ver en funcionamento para entender mejor la manera de ejecutarse que tiene este bucle.

El ejemplo siguiente ilustra las estructuras Do...Loopanidadas, así como el uso de While y Until, y la comprobación al principio (instrucción Do) y al final (instrucción Loop) del bucle. Dim check As Boolean = True Dim counter As Integer = 0 Do Do While counter < 20

counter += 1 If counter = 10 Then check = False Exit Do End If Loop Loop Until check = False End Sub

Comentarios Se puede utilizar cualquier número de instrucciones Exit Do ubicadas en cualquier lugar dentro de una estructura de control Do…Loop, para proporcionar una salida alternativa de un Do…Loop. La instrucción Exit Do se utiliza frecuentemente en la evaluación de alguna condición, por ejemplo, If…Then; en este caso, la instrucción Exit Do transfiere el control a la instrucción que sigue inmediatamente a la instrucción Loop. Cuando se utiliza con instrucciones anidadas Do…Loop, la instrucción Exit Do transfiere control al bucle que está anidado un nivel por encima del bucle donde ocurre. Reglas Naturaleza de la condición. Generalmente, la condición es el resultado de comparar dos valores, pero también puede ser cualquier expresión que da como resultado un valor de Boolean (Tipo de datos, Visual Basic) (True o False). Esto incluye los valores de otros tipos de datos, como los numéricos, que han sido convertidos a valores de tipo Boolean. Probar la condición. Sólo puede probar condition una vez, al principio o al final del bucle. Puede usar While o Until para especificar condition, pero no ambas. Número de iteraciones. Si prueba condition al principio del bucle (en la instrucción Do), puede que el bucle no se ejecute ni siquiera una vez. Si prueba al final del bucle (en la instrucción Loop), el bucle siempre se ejecuta al menos una vez. Anidar bucles. Los bucles Do se pueden anidar colocando un bucle dentro de otro. También puede anidar distintos tipos de estructuras de control dentro de otras. Para obtener más información, vea Estructuras de control anidadas. Transferir el control fuera del bucle. La Instrucción Exit (Visual Basic) transfiere el control inmediatamente a la instrucción que sigue a la instrucción Loop. Puede desear salir de un bucle si detecta una condición que hace que sea innecesario o no se pueda continuar la iteración, como puede ser un valor erróneo o una solicitud de finalización. Puede colocar cualquier cantidad de instrucciones Exit Do en cualquier punto del bucle Do. Exit Do suele utilizarse después de evaluar alguna condición, por ejemplo en una estructura If...Then...Else.

Banco de Preguntas

Pregunta 1 ¿Cuál es la función de la instrucción Do Loop? Repite las instrucciones mientras/hasta etc. una condición es TRUE/VERDADERA El bucle DO...LOOP es muy versátil. Con el se pueden crear gran variedad de bucles distintos, bucles que comprueben una condición antes de ejecutar el bucle una vez, después de la primera ejecución y con combinaciones con mientras (WHILE) que se cumple una condición o hasta (UNTIL) que esa condición se cumpla. La sintaxis de esta estructura es la siguiente: DO [WHILE | UNTIL (condicion)] Sentencias ..... LOOP [WHILE | UNTIL (condicion)]

Lo que siempre tendremos en estos bucles es el DO y el LOOP, entre estos dos colocaremos las sentencias que queremos ejecutar en cada iteración del bucle. Los bucles tienen que evaluar entre cada iteración si se siguen ejecutando o no, para ello evalúan una condición. Lo versátil de este bucle es que la condición se puede expresar de muchas maneras distintas. Condición expresada al lado del DO: en este caso la condición se evalúa antes de empezar a ejecutarse el bucle. Condición expresada al lado del LOOP: en este caso la condición se evalúa después de ejecutarse el bucle. Tiene como diferencia principal frente al otro método que en este caso el bucle se ejecutará por lo menos una vez. Además de poder expresar la condición en estos dos sitios también se puede construir la condición con un enunciado mientras (WHILE) o un enunciado hasta (UNTIL). Las diferencias semánticas de estas dos posibilidades se trasladan también a su manera de funcionar. Vamos a ver un par de ejemplos de este bucle para comprender su funcionamiento. El ejemplo pide constantemente el nombre del autor de la página y no para hasta que el nombre sea "migue". También tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompiéndolo con la sentencia EXIT DO, utilizada para romper bucles. Dim entrada Entrada = "" DO WHILE (entrada "migue") Entrada = inputbox ("Dime el nombre del autor","seguridad","migue",2,3) If (entrada = "out") then msgbox "salgo por la puerta de atras" Exit do End If LOOP

Pregunta 2 Encuentre el error en este código: Sub repetir() cont = 0 limite = 10 Do MsgBox (cont) cont = cont + 1

Loop Until cont >= limite End Sub OPCIONES: a)Se ejecuta siempre y cuando la condicón sea Verdadera b)Se debe utilizar una Variable: VARCONTADOR c)Se debe declarar variables Respuesta: c)Se debe declarar variables Sub repetir() Dim cont As Integer Dim limite As Integer cont = 0 limite = 10 Do MsgBox (cont) cont = cont + 1

Loop Until cont >= limite End Sub

Pregunta 3 ¿ Cuales son las dos formas generales de la Sentencia DO, UNTIL, LOOP? Tiene dos formas generales: En esta primera forma si condición es False se ejecuta el grupo de sentencias y se sigue ejecutando hasta que condicion sea True. La evaluación de la condición se realiza antes de ejecutar las sentencias, por tanto el rango posible de veces que se ejecutan estas será de 0 a n, es decir, puede que el bucle no llegue a ejecutarse nunca. En esta segunda forma, primero se ejecuta una vez el grupo de sentencias y luego se va evaluando condicion, repitiéndose la ejecución de las sentencias mientras sea False, por tanto con esta forma el bucle al menos se ejecuta una vez, es decir su rango será de 1 a n.

Pregunta 4 Do until condicion instrucciones loop ¿Hace bucle cero o solo una vez? RESPUESTA: FALSO.- hace el bucle cero o mas veces

Do istrucciones Loop until condicion ¿Hace el bucle al menos una vez?

RESPUESTA: VERDADERO

Pregunta 5

Cuando utilizo la funcion Do Loop? Repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o basta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse el conjunto de sentencias.

Pregunta 6 imprimir números del 0 al 10 Private Sub numeros () n = 0 N = 10 Do While n >= 0 Print n N = n-1

Loop End Sub

Pregunta 7 DO WHILE (entrada "Miguel") entrada = inputbox ("Dime el nombre del autor","seguridad","Miguel",2,3) if (entrada = "out") then msgbox "salgo por la puerta de atras" exit do end if

LOOP El ejemplo pide constantemente el nombre del autor de la página y no para hasta que el nombre sea "Miguel". También tiene el usuario la posibilidad de escribir "out", en ese caso, comprobado con un enunciado IF, se sale del bucle rompiéndolo con la sentencia EXIT DO, utilizada para romper bucles. Dim entrada entrada = "" ..................................................................... ..................................................................... ....... .............................................................. ..................................................................... .............. ....................................................... ..................................................................... ..................... ................................................ ....................................

Pregunta 8 Conversión de Temperaturas de grados Farentheit a grados Celsius Private Sub temperatura()

Dim farenth, cels As Integer 'cargar datos farenth = InputBox("introduzca la temperatura en grados Farentheit") Do If farenth "" Then cels = ((farenth + 40) * 5 / 9 - 40) MsgBox (cels) & "Temperatura en grados Celsius" End If

Loop While farenth "" End Sub

Pregunta 9 ¿La sentencia Do...Loop es de tipo? 

Es una sentencia Manual

Sub programa() Dim cont As Integer Dim limite As Integer cont = 0 limite = 5 Do MsgBox (cont) cont = cont + 1 Loop Until cont >= limite End Sub Esta estrucuturade código repite la serie de números del 0 al 5. El límite lo indica la variable con elmismo nombre= 5 y el inicio la variable de tipo contador "cont"

Pregunta 10 ¿Cuál es la función de Exit Do? Transfiere el control fuera del bucle Do. Esta abandona directamente al programa mismo dándolo por terminado . Realiza también una serie de operaciones útiles como ser , el cerrado de cualquier archivo que el programa hubiera abierto. Normalmente se la utiliza para abortar los programas en caso de que se esté por cometer un error fatal e inevitable .

Sale inmediatamente del bucle Do en el que aparece. La ejecución continúa con la instrucción que sigue a la instrucción Loop. Exit Do sólo se puede utilizar dentro de un bucle Do. Cuando se utiliza dentro de bucles Do anidados, Exit Do sale del bucle más profundo y transfiere el control al siguiente nivel de anidamiento.

Pregunta 11 ¿Qué función tiene While? El Bucle while o bucle mientras es una estructura de la mayoría de los lenguajes de programación estructurados cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera. Sintaxis La sintaxis en pseudocódigo es la siguiente: Mientras condición hacer Instrucciones Fin Mientras

Condición La condición ha de ser una sentencia que devuelva un valor booleano, y esta puede ser el valor booleano en sí, verdadero (true) si la condición se cumple, o falso si esta no se cumple (false). También puede contener el nombre de una variable booleana, y el valor de la expresión dependerá de su contenido. Se debe tener en cuenta que además de las variables también puede haber llamadas a funciones que devuelvan un valor. Sentencias Comparativas La forma más obvia tal vez, y la más usada sin duda, son las sentencias comparativas, que usan los operandos igual, diferente, menor o igual, mayor o igual, menor y mayor. En el caso del lenguaje C, se utilizan los siguientes símbolos para representar las comparaciones anteriores: ==, !=, =, ,

Pregunta 12 ¿Cuál es la diferencia entre Do...Loop y For ... next? 

Utilizar una estructura Do...Loop es mejor cuando desee repetir un conjunto de instrucciones un número indefinido de veces, hasta que se satisfaga una condición. Si desea repetir las instrucciones un número fijo de veces, la Instrucción For...Next es una mejor opción.

Pregunta 13

Sentencia Do /Loop While Do Sentencia 1 Sentencia 2 Sentencia 3 ........... Sentencia N Loop While(exp_log) Sentencia X En la estructurara anterior si (exp_log) es falsa se: a) Se ejecuta el grupo de sentencia 1 hasta sentencia N b) Se ejecuta el grupo de sentencias y continua en la sentencia X RESPUESTA = a

Pregunta 14 El siguiente ejercicio se ejecuta solo si se declaran las variables: DO LOOP option explicit cont = 0 DO cont = cont +1 respuesta = msgbox (cont,69,"Variable del bucle, con valor 6 se sale") if (respuesta = 2) then msgbox "Cuenta Cancelada",16,"Cancelaste!" exit do end if LOOP UNTIL (cont = 6) R: dim cont dim respuesta

Pregunta 15 Sub ejercicio5() Dim cuadrado As Integer Dim cubo As Integer Dim limite, cont As Integer limite = InputBox("limite") cont = 0 If limite y Then MsgBox ("El limite inferior tiene que ser memor que el superior")

Else Do While x < y x = x + 2 lstInprimir.AddItem (x) Loop

End Sub Private Sub btnSalir_Click() End End Sub Respuesta: El código no es eficiente porque existe 2 errores: primero no se sierra el If y segundo no se guarda en la variable y el dato ingresado por el usuario porque esta mal escrito Text

Instrucciones FOR……NEXT Las instrucciones For...Next se pueden utilizar para repetir un bloque de instrucciones un número determinado de veces. Los bucles For usan una variable contador cuyo valor se aumenta o disminuye cada vez que se ejecuta el bucle. es utilizado cuando se desee repetir un conjunto de instrucciones para cada elemento de coleccion o matriz. La sentecia realiza una repetición desde la inicialización hasta el término del bucle. Para llevar la cuenta se utiliza una variable. Con cada ejecución del bucle se ejecutan unas sentencias. NEXT sirve para delimitar el final del bucle, cuando se encuentra con el NEXT se vuelve otra vez al principio del FOR, así hasta realizar el número de ejecuciones determinado. FOR…NEXT puede resolver aquellas situaciones en las que un grupo de instrucciones debían repetirse un numero determinado de veces. Pero existen otras situaciones, y aparecen con mucha frecuencia, en las que no se conoce de antemano el número de iteraciones que debería tener nuestro bucle.

A pesar de que un programador con experiencia siempre encontrará la forma de afrontar esas situaciones haciendo uso de FOR…NEXT, resulta mas fácil, apropiado y eficiente emplear las instrucciones que el repertorio sentencias de Visual Basic pone a nuestra disposición. Veamos cuales son. El siguiente procedimiento hace que el equipo emita un sonido 50 veces. La instrucción For determina la variable contador x y sus valores inicial y final. La instrucción Next incrementa el valor de la variable contador en 1. Sub Bips() For x = 1 To 50 Beep Next x End Sub

ESTRUCTURA For counter [ As datatype ] = start To end [ Step step ] [ statements ] [ Exit For ] [ statements ]

Next [ counter ] Partes counter Se requiere en la instrucción For. Variable numérica. Variable de control para el bucle. datatype Obligatorio, a menos que counter ya se haya declarado. Tipo de datos de counter. start Obligatorio. Expresión numérica. Valor inicial de counter. end Obligatorio. Expresión numérica. Valor final de counter. step Opcional. Expresión numérica. Cantidad en la que se incrementa counter cada vez que se recorre el bucle.

statements Opcional. Una o más instrucciones entre For y Next que se ejecutan un número especificado de veces. Exit For Opcional. Transfiere el control fuera del bucle For. Next Obligatorio. Termina la definición del bucle For. Ejemplo: Sub serie () Dim lim As Integer Dim cont As Integer Dim a As Integer Dim b As Integer Dim c As Integer a = 1 b = 1 lim = 5 For cont = 1 To lim c = a + b MsgBox c a = b b = c Next End Sub

Mediante la palabra clave Step, se puede aumentar o disminuir la variable contador en el valor que se desee. En el siguiente ejemplo, la variable contador j se incrementa en 2 cada vez que se repite la ejecución del bucle. Cuando el bucle deja de ejecutarse, total representa la suma de 2, 4, 6, 8 y 10. Sub DosTotal() For j = 2 To 10 Step 2 total = total + j Next j MsgBox "El total es " & total End Sub

Para disminuir la variable contador utilice un valor negativo en Step. Para disminuir la variable contador es preciso especificar un valor final que sea menor que el valor inicial. En el siguiente ejemplo, la variable contador miNum se disminuye en 2 cada vez que se repite

el bucle. Cuando termina la ejecución del bucle, total representa la suma de 16, 14, 12, 10, 8, 6, 4 y 2. Sub NuevoTotal() For miNum = 16 To 2 Step -2 total = total + miNum Next miNum MsgBox "El total es " & total End Sub

Se puede abandonar una instrucción For...Next antes de que el contador alcance su valor final, para ello se utiliza la instrucción Exit For. Por ejemplo, si se produce un error se puede usar la instrucción Exit For en el bloque de instrucciones True de una instrucción If...Then...Else o Select Case que detecte específicamente ese error. Si el error no se produce, la instrucción If…Then…Else es False y el bucle continuará ejecutándose normalmente. Cuando se conoce de antemano el número de veces que una sentencia o un grupo se sentencia se debe repetir, es recomendable utilizar esta sentencia. El bucle For permite inicializar una variable llamada de control en un primer valor, incrementar o decremento hasta legar al ultimo valor El formato de esa sentencia es la siguiente: For variable = Primervalor To variable ùltimovalor Step Incremento sentencia1 sentencia2 sentencia3 . . sentenciaN Next variable sentenciaX La sentencia For crea un bucle en el que la variable que hace la función de contador se inicializa a primervalor y luego se va incrementado en el valor de incremento cada vez que el programa ejecute el bucle, hasta que alcanza el valor ùltimovalor. Si se omite la palabra Step se asume que el incremento es de una unidad El valor del primervalor debe ser menor que el ùltimovalor, salvo que el incremento sea negativo, en este caso el primervalor debe ser mayor que el últimovalor Ejemplos • Imprimir los números comprendidos entre 1 to 100 For contador = 1 to 100 Print contador

Next contador • Imprimir los números pares entre 2 y 100 For contador = 2 to 100 step 2 Print contador Next contador • Imprimir los múltiplos de 5 desde 100 For contador = 100 to 5 step -5 Print contador Next contador Ejemplo: Sub serie () Dim lim As Integer Dim cont As Integer Dim a As Integer Dim b As Integer Dim c As Integer a=1 b=1 lim = 5 For cont = 1 To lim c = a + b MsgBox c a = b b = c

Next End Sub

Banco de Preguntas Pregunta 1 sub p() dim i, n, s as integer n=10 for i=1 to n s=s+1 msgbox s next end sub

Dado el siguiente conjunto de sentencias indique que imprimiría? 

Imprime una sola vez la variable s



Imprime la variable s solo en la primera iteración



Imprime la variable s en cada iteración

Pregunta 2 Sub VarConst() 'Seccion sirve para agregar VAR y COSNT Dim res(10, 10) As Integer 'Declaracion de la matriz de 10 * 10 Dim aux As Integer 'Num 1 indica la tabla del numero que se va multiplicar 'Num 2 indica el valor por el que se va a multiplicar num1 For num1 = 1 To 10 For num2 = 1 To 10 'Asignando la posicion en la matriz y el valor que va a tomar res(num1, num2) = num1 * num2 Next Next 'Leo el valor que se ingreso en el inputbox para visualizar la tabla de multiplicacion del valor ingresado entre el 1 y 10 aux = Inputbox("Ingrese el numero para la tabla de multiplicar") For num2 = 0 To 10 'Imprime la multiplicacion MsgBox prompt:=res(aux, num2), Title:=aux & "x" & num2 Next

End Sub

¿Que proceso se ejecuta con el número ingresado en el input box? a) Se multiplica el número ingresado por valores del 1 al 10 b) Se imprime solo las posiciones de la matriz correspondientes a ese número c) Se imprime solo las posiciones del vector correspondiente a ese número Respuesta: b

Pregunta 3 ¿Cuáles son las ventajas de un bucle for next? Es el bucle mas simpe al momento de manejar arreglos uni o bidimencionales ya que la variable en la que se maneja la posisición de dicho arreglo ya viene contenida dentro de la instrución ya que esta es integer y se ira sumando dependiendo de los pasos que se le asignen dentro de la instruccion o dentro de el código programado

Pregunta 4

Puedo utilizar la funcion For Nex cuando quiero repetir un conjunto de instrucciones un número fijo de veces? RESPUESTA: SI Para hacer esto, se elige una variable que actuara como contador de las vueltas del bucle. Cuando alcanza un valor determinado, finalizará el bucle. Primero se iguala la variable que cuenta las vueltas al número que deseamos comenzar (For i=0). Por defecto, la variable que cuenta las vueltas del bucle se incrementa en 1, pero se puede asignar otro valor de incremento. Este valor se pone después de la palabra Step. A continuación se muestra el bucle trabajando. Notar que el Step es de 1... se puede elegir cualquier incremento. 0 es el cuadrado de 0 1 es el cuadrado de 1 4 es el cuadrado de 2 9 es el cuadrado de 3 16 es el cuadrado de 4 25 es el cuadrado de 5 36 es el cuadrado de 6 49 es el cuadrado de 7

64 es el cuadrado de 8 81 es el cuadrado de 9 100 es el cuadrado de 10 Ha terminado el bucle...

Pregunta 5 Sub conteo_regresivo() Dim I As Integer For I = 10 To 1 Step -2 MsgBox I Next

End Sub Seleccione la opcion correcta a). En el codigo step ayuda que la variable aumente de 2 en dos b). En el codigo step ayuda que la variable disminuya de 2 en dos Respuesta: b

Pregunta 6 Sub cinty() Dim C As Integer For C = 20 To 30 Step 2 MsgBox prompt:=C, Title:="aumento" Next

End Sub Elija la respuesta correcta: En el programa qué función cumple FOR…NEXT: • Repite un bloque de instrucciones un número determinado de veces. • No usa una variable contador cuyo valor se aumenta o disminuye cada vez que se ejecuta el bucle. • La dos son correctas.

Pregunta 7 Sub prog3() Dim X As Integer

For X = 1 To 10 If X = 6 Then MsgBox " solo te falta 5 mas" End If MsgBox X Next

End Sub Seleccione la respuesta correcta Que pasa si X= 6 a). Se imprime “solo te falta 5 mas “después de contar 6 b). Se imprime “solo te falta 5 mas ” después de contar 5 respuesta: b

Pregunta 8 ¿cu{ando utilizo las instrucciones For...Next? Se pueden utilizar para repetir un bloque de instrucciones un número determinado de veces. Los bucles For usan una variable contador cuyo valor se aumenta o disminuye cada vez que se ejecuta el bucle. funciona bien cuando se puede asociar cada iteración de un bucle con una variable de control y determinar los valores iniciales y finales de esa variable

Pregunta 9 ¿Mediante la palabra clave Step, se puede aumentar o disminuir la variable contador en el valor que se desee? a) verdadero b) falso

Pregunta 10 dim a as a byte Private Sub comnumh_ENTER() 'En caso de error, que continúe On Error Resume Next 'Ocultamos el procedimiento Application.ScreenUpdating = False 'Limpiamos lo que haya comnumh.Clear 'Vamos a llenar dinámicamente el combobox If comtipoh = "INDIVIDUAL" Then For a = 1 To 10 comnumh.AddItem a Next

ElseIf comtipoh = "TWIN" Then For a = 11 To 20 comnumh.AddItem a

Next

ElseIf comtipoh = "MATRIMONIAL" Then For a = 21 To 30 comnumh.AddItem a Next

ElseIf comtipoh = "SUITE" Then For a = 31 To 40 comnumh.AddItem a Next

End If Application.ScreenUpdating = True End Sub ¿en el ejercicio presente que realiza for...next..? a) es el que permite que en las opciones de despliegue tipo al elegirla una de las opciones en el proximo boton de despliegue aparescan automaticamente los numeros de habitacion segun el tipo de habitacion b)es un contador de la variable a y se repite c)ninguna de las dos anteriores

Pregunta 11 ¿PARA QUÉ SIRVE LA PALBRA "STEP" DENTRO DE LA SINTAXIS Y EJECUCIÓN DE LA SENTENCIA FOR...NEXT? Mediante la palabra clave Step, se puede aumentar o disminuir la variable contador en el valor que se desee. En el siguiente ejemplo, la variable contador j se incrementa en 2 cada vez que se repite la ejecución del bucle. Cuando el bucle deja de ejecutarse, total representa la suma de 2, 4, 6, 8 y 10.

Pregunta 12 ¿Cómo se pude disminuir el contador? Para disminuir la variable contador utilice un valor negativo en Step. Para disminuir la variable contador es preciso especificar un valor final que sea menor que el valor inicial. En el siguiente ejemplo, la variable contador miNum se disminuye en 2 cada vez que se repite el bucle. Cuando termina la ejecución del bucle, total representa la suma de 16, 14, 12, 10, 8, 6, 4 y 2. Sub NuevoTotal() For miNum = 16 To 2 Step -2 total = total + miNum Next miNum MsgBox "El total es " & total

End Sub

Pregunta 13 ¿CUAL ES LA FUNCION DE UNA VARIABLE DE TIPO CONTADOR? Es una variable contador cuyo valor se aumenta o disminuye cada vez que se ejecuta el bucle. es utilizado cuando se desee repetir un conjunto de instrucciones para cada elemento de coleccion o matriz, cuyo valor se incrementa o decrementa en un valor fijo. Un contador suele utilizarse para contar el número de veces que itera un bucle. Pero, a veces, se utiliza para contar, solamente, aquellas iteraciones de un bucle en las que se cumpla una determinada condición.

Pregunta 14 Sub programa1() Dim A, B, X As Integer MsgBox "recuerdo para ejecutar programa condicion es A=B" A = InputBox("A", "rango selecionado") B = InputBox("B", "confirmacion de rango seleccionado") If A = B Then For X = 1 To A Step 2 MsgBox prompt:=X, Title:="estos son los numeros impares seleccionado" Next

rango Else

MsgBox " debe cumplirse la condicion" End If End Sub

En el programa para que sirve el ingreso por teclado de B a. sirve como rango de comparacion con A b. sirve para confirmar el rango seleccionado respuesta b

Pregunta 15 Sub programa2() Dim C, d As Integer C = 1 Do While C > 0

en el

For d = 1 To 10 MsgBox d Next C = C - 1 Loop End Sub

Puede estar la estructura For Next en la estructura Do Loop a. si b. no Respuesta a

Pregunta 16 Verificar si el siguiente código función correctamente o no con la forma indicada

Dim Vector1(100) As Integer Dim Vector2(100) As Integer Dim Respuesta() As Integer Dim X, Y, i, num, num1, u, opc As Integer Private Sub btnOk_Click() opc = txtOpc.Text Select Case opc Case 1 lstInprimir.Visible = True For num = 1 To 10

lstInprimir.AddItem (num) Next num

Case 2 lstInprimir.Visible = True lstInprimir.Clear num = InputBox("Ingrese el Tamaño del Vector Uno") For X = 0 To num Vector1(X) = InputBox("Ingrese los Numeros qu se Guardaran en el Vector Uno") Next X num1 = InputBox("Ingrese el Tamaño del Vector Dos") For Y = 0 To num1 Vector2(Y) = InputBox("Ingrese los Numeros qu se Guardaran en el Vector Dos") Next Y Respuesta = MultiplicacionVector(Vector1, Vector2) For i = 0 To (num And num1) lstInprimir.AddItem (Respuesta(i)) Next

Case 3 End

End Select End Sub Private Function MultiplicacionVector(Vector1() As Integer, Vector2() As Integer) As Integer() Dim Resultado() As Integer Dim i As Long ReDim Resultado(UBound(Vector2)) For i = LBound(Vector1) To UBound(Vector1) Resultado(i) = Vector1(i) * Vector2(i)

Next

MultiplicacionVector = Resultado End Function Respuesta: El código es eficiente no existe ningún error

Pregunta 17 La Funcion While...End While es similar a la funcion For...Next? Si o No...? y Porque No son similares porque las Funciones While...End While y la Instrucción Do...Loop son cuando no se sabe cuántas veces se necesita ejecutar las instrucciones del bucle Pero, la funcion For...Next se la utiliza cuando espere ejecutar el bucle con un número concreto de veces.

Pregunta 18 Pregunta 19 Pregunta 20 == Instrucciones FOR EACH NEXT ==´ Una instrucción For Each especifica una variable de control de bucle y una expresión enumeradora. El tipo del valor devuelto por la expresión en una instrucción ForEach debe ser un tipo de colección (como se define más adelante) y debe existir una conversión implícita del tipo de elemento de la colección en el tipo de la variable de control de bucle. Una instrucción ForEach...Next repite bucles basados en los elementos de una expresión. La variable de control de bucle se especifica mediante un identificador seguido por una cláusula As o una expresión. En el caso de un identificador, el identificador define una nueva variable local del tipo especificado en la cláusula As, con el ámbito del bucle For Each completo. Se dice que un tipo C es un tipo de colección si implementa System.IEnumerable o si todo lo siguiente es verdadero: • C contiene un método de instancia accesible con la firma GetEnumerator() que devuelve un tipo E. • E contiene un método de instancia accesible con la firma MoveNext() y devuelve el tipo Boolean.

• E contiene una propiedad de instancia accesible denominada Current que tiene un captador. Se dice que el tipo de esta propiedad es el tipo de elemento del tipo de colección.

Repite un grupo de instrucciones para cada elemento de una colección. For Each element [ As datatype ] In group [ statements ] [ Exit For ] [ statements ]

Next [ element ] Partes element Se requiere en la instrucción For Each. Es opcional en la instrucción Next. Variable. Se utiliza para recorrer en iteración los elementos de la colección. datatype Es obligatorio, a menos que element no se haya declarado ya. Tipo de datos de element. group Obligatorio. Variable de objeto. Hace referencia a la colección sobre la que se debe repetir la ejecución de statements. statements Opcional. Una o más instrucciones entre For Each y Next que se ejecutan en cada elemento de group. Exit For Opcional. Transfiere el control fuera del bucle For Each. Next Obligatorio. Termina la definición del bucle For Each.

La instrucción FOR EACH NEXT tiene varias reglas que se debe seguir como las siguientes: Reglas • Tipos de datos. El tipo de datos del elemento debe ser tal que el tipo de datos de los elementos del grupo se puede convertir a la misma. El tipo de datos del grupo debe ser un tipo de referencia que se refiere a una colección o una matriz. Esto significa que el grupo debe hacer referencia a un objeto que implemente la IEnumerable interfaz del System.Collections el espacio de nombres o IEnumerable interfaz del System.Collections.Generic espacio de nombres. IEnumerable define el GetEnumerator método, que devuelve un objeto enumerador para la colección. El objeto enumerador implementa la interfaz IEnumerator interfaz del espacio de nombres System.Collections y expone a la actual propiedad y el Reset y MoveNext métodos. Visual Basic utiliza estas para recorrer la colección. Los elementos del grupo son, generalmente de tipo Object, pero puede tener cualquier tipo de datos en tiempo de ejecución.

• Declaración. Si el elemento no ha sido declarado fuera de este bucle, se debe declarar en el de cada declaración. En este caso, el alcance del elemento es el cuerpo del bucle. Sin embargo, no se puede declarar elemento, tanto fuera como dentro del bucle. • Número de iteraciones. Visual Basic evalúa la colección una sola vez, antes del bucle comienza. Si el bloque de instrucciones cambios elemento o grupo, estos cambios no afectan a la iteración del bucle. • Anidación Loops. Puede anidar bucles For Each colocando un bucle dentro de otro. Sin embargo, cada bucle debe tener una variable elemento único. También puede anidar distintos tipos de estructuras de control dentro de otras. Para obtener más información, vea Estructuras de control anidadas .

Las instrucciones For Each...NextTexto en cursiva repiten un bloque de instrucciones para cada uno de los objetos de una colección o para cada elemento de una matriz. Visual Basic

asigna valor automáticamente a una variable cada vez que se ejecuta el bucle. Por ejemplo, el siguiente procedimiento cierra todos los formularios excepto el que contiene al procedimiento que se está ejecutando. Sub CierraFormul() For Each frm In Application.Forms If frm.Caption Screen.ActiveForm.Caption Then frm.Close Next End Sub

El siguiente código recorre todos los elementos de una matriz e introduce en cada uno de ellos el valor de la variable índice I. Dim PruebaMatriz(10) As Integer, I As Variant For Each I In PruebaMatriz PruebaMatriz(I) = I Next I

Recorrer un conjunto de celdas Se puede usar el bucle For Each...Next para recorrer las celdas pertenecientes a un rango determinado. El siguiente procedimiento recorre las celdas del rango A1:D10 de la Página1 y convierte cualquier valor absoluto menor de 0,01 en 0 (cero). Sub RedondeoACero() For Each miObjeto in miColeccion If Abs(miObjeto.Value) < 0.01 Then miObjeto.Value = 0 Next End Sub

Salir de un bucle For Each...Next antes de que finalice Se puede salir de un bucle For Each...Next mediante la instrucción Exit For. Por ejemplo, cuando se produce un error se puede usar la instrucción Exit For en el bloque de instrucciones True de una instrucción If...Then...Else o Select Case que detecte específicamente el error. Si el error no se produce, la instrucción If…Then…Else es False y el bucle se seguirá ejecutando normalmente. El siguiente ejemplo detecta la primera celda del rango A1:B5 que no contiene un número. Si se encuentra una celda en esas condiciones, se presenta un mensaje en pantalla y Exit For abandona el bucle. Sub BuscaNumeros() For Each miObjeto In MiColeccion If IsNumeric(miObjeto.Value) = False Then MsgBox "El objeto contiene un valor no numérico." Exit For End If Next c End Sub

Ejemplo de la instrucción For Each...Next

En este ejemplo se utiliza la instrucción For Each...Next para buscar la cadena "Hola" en la propiedad Text de todos los elementos de una colección. En el ejemplo, MiObjeto es un objeto relacionado con texto y es un elemento de la colección MiColección. Ambos son nombres genéricos utilizados sólo a modo de ilustración. Dim Found, MiObjeto, MiColección Found = False ' Inicializa variable. For Each MiObjeto In MiColección ' Itera por cada elemento. If MiObjeto.Text = "Hola" Then ' Si Texto es igual "Hola". Found = True ' Establece como Verdadero. Exit For ' Sale del bucle. End If Next

Comentarios Utilice un bucle For Each...Next cuando desee repetir un conjunto de instrucciones para cada elemento de una colección o matriz. Una Instrucción For...Next (Visual Basic) funciona bien cuando se puede asociar cada iteración de un bucle con una variable de control y determinar los valores iniciales y finales de esa variable. Sin embargo, cuando se trata de colecciones, el concepto de valores iniciales y finales no es significativo, y no siempre se sabe cuántos elementos tiene la colección. En este caso, el bucle For Each...Next es la mejor opción. Reglas Tipos de datos. El tipo de datos de element debe ser tal que el tipo de datos de los elementos de group se pueda convertir en él. El tipo de datos de group debe ser un tipo de referencia que hace referencia a una colección o una matriz. Esto significa que group tiene que hacer referencia a un objeto que implementa la interfaz IEnumerable del espacio de nombres System.Collections o la interfaz IEnumerable del espacio de nombres System.Collections.Generic. IEnumerable define el método GetEnumerator, que devuelve un objeto enumerador para la colección. El objeto enumerador implementa la interfaz IEnumerator del espacio de nombres System.Collections y expone la propiedad Current y los métodos Reset y MoveNext. Visual Basic los utiliza para recorrer la colección. Los elementos de group normalmente son del tipo Object pero pueden tener cualquier tipo de datos en tiempo de ejecución. Declaración. Si element no se ha declarado fuera de este bucle, se debe declarar en la instrucción For Each. En tal caso, el ámbito de element es el cuerpo del bucle. Sin embargo, no se puede declarar element fuera y dentro del bucle.

Número de iteraciones. Visual Basic sólo evalúa una vez la colección, antes de que comience el bucle. Si el bloque de instrucciones cambia element o group, estos cambios no afectan a la iteración del bucle. Bucles anidados. Se pueden anidar bucles For Each colocando un bucle dentro de otro. Sin embargo, cada bucle debe tener una variable element única. También se pueden anidar entre sí tipos diferentes de estructuras de control. Para obtener más información, vea Estructuras de control anidadas. Identificar la variable de control. Opcionalmente, puede especificarse element en la instrucción Next. Esto mejora la legibilidad del programa, sobre todo si se han anidado bucles For Each. La variable que se especifique debe ser igual a la que aparece en la instrucción For Each correspondiente. Transferir fuera del bucle. La Instrucción Exit (Visual Basic) transfiere el control inmediatamente a la instrucción que sigue a Next. Por ejemplo, puede ser conveniente salir de un bucle si se detecta una condición que hace que sea innecesario o imposible continuar la iteración, como puede ser un valor erróneo o una solicitud de finalización. Asimismo, si se detecta una excepción en una instrucción Try...Catch...Finally, se puede utilizar Exit For al final del bloque Finally. Se puede colocar cualquier número de instrucciones Exit For en un bucle For Each. Exit For se suele utilizar después de evaluar alguna condición, por ejemplo en una estructura If...Then...Else. Bucles sin fin. Un uso de Exit For es comprobar una condición que pudiera ocasionar un bucle sin fin; es decir, un bucle que pudiera ejecutarse un número extremadamente elevado de veces e incluso infinitamente. Si se detecta este tipo de condición, se puede utilizar Exit For para escapar del bucle.

Comportamiento Entrada en el bucle. Cuando comienza la ejecución del bucle For Each...Next, Visual Basic comprueba que group hace referencia a un objeto de colección válido. Si no, produce una excepción. De lo contrario, llama al método MoveNext y a la propiedad Current del objeto enumerador para devolver el primer elemento. Si MoveNext indica que no hay un elemento siguiente, es decir, si la colección está vacía, el bucle For Each termina y el control pasa a la instrucción que sigue a Next. De lo contrario, Visual Basic establece element en el primer elemento y ejecuta el bloque de instrucciones. Iteraciones del bucle. Cada vez que Visual Basic encuentra la instrucción Next, vuelve a la instrucción For Each. Llama de nuevo a MoveNext y Current para devolver el elemento siguiente, y una vez más ejecuta el bloque o termina el bucle según el resultado. Este

proceso continúa hasta que MoveNext indica que no hay ningún elemento siguiente o se encuentra una instrucción Exit For. Terminación del bucle. Cuando todos los elementos de la colección se han asignado correctamente a element, el bucle For Each termina y el control pasa a la instrucción que sigue a Next. Cambiar los valores de iteración. Cambiar el valor de element mientras se está dentro de un bucle puede dificultar la lectura y la depuración del código. Cambiar el valor de group no afecta a la colección o sus elementos, que se determinaron en el momento de entrar en el bucle. Orden de recorrido. Cuando se ejecuta un bucle For Each...Next, el recorrido de la colección está bajo el control del objeto enumerador devuelto por el método GetEnumerator. El orden de recorrido no lo determina Visual Basic, sino el método MoveNext del objeto enumerador. Esto significa que tal vez no se pueda predecir qué elemento de la colección es el primero que se devuelve en element o qué elemento es el siguiente en ser devuelto tras un elemento dado. Si el código utilizado depende del recorrido de una colección en un orden concreto, un bucle For Each...Next no es la mejor opción a menos que conozca las características del objeto enumerador que expone la colección. Es posible obtener resultados más fiables si se utiliza una estructura de bucle diferente, tal como For...Next o Do...Loop. Modificar la colección. El objeto enumerador devuelto por GetEnumerator normalmente no permite que se agreguen, eliminen, reemplacen o reordenen elementos de la colección. Si se modifica la colección después de haber iniciado un bucle For Each...Next, el objeto enumerador deja de ser válido y el siguiente intento de acceso a un elemento produce una excepción InvalidOperationException. Sin embargo, este bloqueo de la modificación no viene determinado por Visual Basic sino por la implementación de la interfaz IEnumerable. Es posible implementar IEnumerable de modo que se permita la modificación durante la iteración. Si piensa realizar este tipo de modificación dinámica, asegúrese de conocer las características de la implementación de IEnumerable en la colección que está utilizando. Modificar los elementos de colección. La propiedad Current del objeto enumerador es ReadOnly (Visual Basic) y devuelve una copia local de cada elemento de la colección. Esto significa que no es posible modificar los propios elementos en un bucle For Each...Next. Cualquier modificación que se realice afectará sólo a la copia local de Current y no se verá reflejada de nuevo en la colección subyacente. Sin embargo, si un elemento es un tipo de referencia, es posible modificar los miembros de la instancia a los que apunta. Esto se ilustra en el siguiente ejemplo: CopiarSub lightBlueBackground(ByVal thisForm As System.Windows.Forms.Form)

For Each thisControl As System.Windows.Forms.Control In thisForm.Controls thisControl.BackColor = System.Drawing.Color.LightBlue Next thisControl

End Sub En el ejemplo anterior se puede modificar el miembro BackColor de cada elemento thisControl, aunque no se puede modificar el propio elemento thisControl. Recorrer matrices. Dado que la clase Array implementa la interfaz IEnumerable, todas las matrices exponen el método GetEnumerator. Esto significa que es posible recorrer una matriz con un bucle For Each...Next. Sin embargo, sólo podrá leer los elementos de la matriz, no modificarlos.

Banco de Preguntas Pregunta 1 ¿cual es la funcion de las instrucciones For Each Next? Las instrucciones "For Each Next" Repiten un grupo de instrucciones para cada elemento de una colección.

Pregunta 2 Cuál es la función de EXIT FOR? a. Transfiere el control fuera del bucle For Each. b. Termina la definición del bucle For Each. Respuesta: a

Pregunta 3

La Instruccion FOR EACH NEXTTexto en cursiva Repite un grupo de instrucciones para cada elemento de una colección. a)Verdadero b)Falso respuesta: a)VerdaderoTexto en negrita

Pregunta 4

Escriba un ejemplo para buscar la palabra "Trabajo" con la instruccion For Each...Next En el ejemplo, MiObjeto es un objeto relacionado con texto y es un elemento de la colección MiColección. Ambos son nombres genéricos utilizados sólo a modo de ilustración. Dim Found, MiObjeto, MiColección Found = False ' Inicializa variable. For Each MiObjeto In MiColección ' Itera por cada elemento. If MiObjeto.Text = "Trabajo" Then ' Si Texto es igual "Trabajo". Found = True ' Establece como Verdadero. Exit For ' Sale del bucle. End If

Next

Pregunta 20 Texto en negrita== Intrucciones WITH== "Ejecuta una serie de instrucciones que hacen referencia repetidas veces a un único objeto o estructura"

Objetos, Propiedades, Métodos y Procedimientos de Evento Habitualmente, cada evento produce un controlador de eventos con un tipo de objeto de evento diferente para el segundo parámetro. Algunos controladores de eventos, como los de los eventos MouseDown y MouseUp, tienen el mismo tipo de objeto, MouseEventArgs, para el segundo parámetro. Para estos tipos de eventos, se puede utilizar el mismo controlador de eventos para controlar ambos eventos. Para los eventos que transfieren tipos de objetos de eventos diferentes, deben crearse controladores de eventos independientes. Por ejemplo, el evento TextChanged de un control TextBox transfiere el objeto de evento genérico EventArgs, mientras que el evento MouseDown transfiere el objeto de evento MouseEventArgs, que es más especializado. El objeto MouseEventArgs contiene propiedades que son específicas de los eventos del mouse, como Button, que determina qué botón del mouse se ha presionado; estas propiedades no se aplican a un control TextBox y podría producirse un error si se intenta establecer referencias a ellas. Además de las diferencias conceptuales en el control de eventos, los nombres y el comportamiento de algunos eventos para los distintos objetos son diferentes en Visual Basic 2005

OBJETO Cuando se crea una aplicación en Visual Basic, se trabaja con objetos constantemente. Se pueden utilizar objetos proporcionados por Visual Basic, como controles, formularios y objetos de acceso a datos. También se pueden usar los objetos de otras aplicaciones dentro de su aplicación de Visual Basic. Incluso pueden crearse objetos propios y agregarles propiedades y métodos adicionales. Los objetos actúan como unidades de creación prefabricadas para programas: permiten escribir una porción de código y utilizarla una y otra vez. Es una combinación de código y datos que pueden tratarse como una unidad, puede ser una porción de una aplicación, como un control o un formulario. En Visual Basic, los eventos están ligados a objetos específicos y tienen su código de control de eventos. Por ejemplo, en un formulario con un botón y un menú, cada uno tiene su evento Click; hay que escribir código para cada uno en el controlador de eventos, aunque los dos realicen la misma función. Copiar' Visual Basic 6.0 Private Sub HelpButton_Click() HelpButton.Caption = "Help me!"

End Sub Private Sub HelpMenu_Click() HelpMenu.Caption = "Help me!"

End Sub Los objetos permiten declarar variables y procedimientos una vez y utilizarlos siempre que sean necesarios. Por ejemplo, si desea agregar un corrector ortográfico a una aplicación, puede definir todas las variables y funciones auxiliares para proporcionar funcionalidad de corrección ortográfica. Si crea el corrector ortográfico como una clase, puede volver a utilizarlo en otras aplicaciones mediante la inclusión de una referencia en el ensamblado compilado. Aún mejor, tal vez pueda ahorrarse trabajo mediante el uso de una clase de corrector ortográfico que otra persona ya haya desarrollado. Reutilizar el código Los objetos permiten declarar variables y procedimientos una vez y utilizarlos siempre que sean necesarios. Por ejemplo, si desea agregar un corrector ortográfico a una aplicación, puede definir todas las variables y funciones auxiliares para proporcionar funcionalidad de corrección ortográfica. Si crea el corrector ortográfico como una clase, puede volver a utilizarlo en otras aplicaciones mediante la inclusión de una referencia en el ensamblado compilado. Aún mejor, tal vez pueda ahorrarse trabajo mediante el uso de una clase de corrector ortográfico que otra persona ya haya desarrollado. Clases

Cada objeto de Visual Basic está definido por una clase. Una clase describe las variables, propiedades, procedimientos y eventos de un objeto. Los objetos son instancias de clases; pueden crearse tantos objetos como sean necesarios una vez que se defina una clase. Dos ejemplos en Visual Basic podrían ayudar a ilustrar la relación entre las clases y objetos. 

Los controles en el Cuadro de herramientas de Visual Basic representan las clases. Cuando se arrastra un control del Cuadro de herramientas a un formulario, se está creando un objeto; una instancia de una clase.



El formulario con el que se trabaja en tiempo de diseño es una clase. En tiempo de ejecución, Visual Basic crea una instancia de la clase del formulario, es decir, un objeto.

PROPIEDADES Propiedad es el atributo de un objeto que define una de las características del objeto, tal como su tamaño, color o localización en la pantalla, o un aspecto de su comportamiento, por ejemplo si está visible o activado. Para cambiar las características de un objeto, se cambia el valor de sus propiedades. Algunas propiedades no solo determinan el aspecto que tiene el objeto, sino que además pueden determinar su comportamiento; por ejemplo, la propiedad MaxButton establece si el formulario tendrá o no el botón Maximizar. La presencia o ausencia de este botón determinará si el formulario se puede o no maximizar. METODOS Los métodos son un conjunto de procedimientos que permiten que un objeto ejecute una acción o tarea sobre sí mismo. Por ejemplo, para un formulario tenemos el método Hide que hará que el formulario se oculte; o el método Show que hará que el formulario se vuelva a mostrar, tambien es un procedimiento que se aplica a un objeto. Por ejemplo, Add es un método del objeto ComboBox ya que sirve para añadir un nuevo elemento a un cuadro combinado. EVENTOS Un evento es una acción que es reconocida por el objeto. Un evento ocurre (se dispara) como resultado de la interacción del usuario con el objeto. También puede dispararse debido a la ejecución de código (sentencias) o como resultado de la interacción de otro objeto con el objeto de poseedor del evento. Para un formulario tenemos por ejemplo; el evento Load que se dispara cuando se carga el formulario; o el evento Click para un botón de comando, se dispara cuando se hace clic sobre él.

Comprender Objetos, Propiedades, Métodos y Eventos ¿Qué papel cumplen las propiedades, métodos y eventos? Toda aplicación necesita una interfaz de usuario, la parte visual a través de la cual el usuario interactúa con la aplicación. Los bloques básicos de construcción de una interfaz de usuario son los formularios y los controles. Visual Basic utiliza técnicas de programación visual para diseñar las aplicaciones. Para diseñar esta ventana (Formulario), del conjunto de objetos de Visual Basic seleccionamos un objeto tipo Formulario (Form). Luego a la propiedad Nombre (Name) le asignamos el valor frmEntrada; a la propiedad Título le asignamos el valor Bienvenidos a Gestión y Sistemas. Dentro del formulario se colocan los controles. Para que el usuario pueda ingresar un dato (por ejemplo, la contraseña) colocamos en la ventana un control tipo Cuadro de Texto (TextBox); a continuación establecemos su propiedad Nombre en txtContraseña, y su propiedad PasswordChar es un * (asterisco) para que el dato ingresado sea reemplazado por asteriscos sólo en la pantalla, para que no se pueda visualizar. Para obtener el botón Ingresar seleccionamos un control tipo Botón de Comando (CommandButton), y lo colocamos en la ventana. Luego cambiamos sus propiedades; a la

propiedad Nombre le asignamos cmdIngresar, y a la propiedad Título le asignamos Ingresar. Se desea que cuando el usuario haga clic en el botón Limpiar, se borre cualquier dato que el usuario haya ingresado en los Cuadros de Texto, y que el punto de inserción se ubique en el cuadro txtUsuario. Para que esto ocurra debemos programar el evento Hacer_Click del botón de comando cmdLimpiar. El evento debe ejecutar dos sentenciar para cambiar la propiedad Texto de cada uno de los cuadros de texto, y luego invocar al método EstablecerEnfoque() del cuadro de texto txtUsuario. Otra ventaja de la programación orientada a objetos es lo que se llama ENCAPSULACION, esto significa que podemos tener un control 50 veces en un formulario, y si le cambiamos una propiedad a un control solamente se cambia en él y no en los 49 controles restantes, es decir, cada control mantiene encapsulado sus propiedades, con este ejemplo se entenderá mejor: Cuando nos referimos a una propiedad de un control tenemos que colocar su nombre y el nombre de la propiedad, ejemplo: Nombre_de_Control.Propiedad = Valor Si continuamos con el ejemplo de una persona sería algo parecido: Maria.Ojos = Castaños En un programa de Visual Basic seria de la siguiente manera: Text1.text = "HOLA" Donde Text1 es un control TEXTBOX, Text es una propiedad del control TEXTBOX, y "HOLA" es una cadena String que se le pasa a la propiedad (Text) de Text1 (CONTROL). Perfecto, entonces un ejemplo de Encapsulación seria el siguiente supongamos que tenemos 2 TEXTBOX en un formulario Text1 y Text2 si hacemos lo siguiente: Text1.text = "HOLA MUNDO" Este texto nada mas es para el Text1, no se modifica la propiedad "Text" del Text2 (ESO ES ENCAPSULAMIENTO) Ahora, ya entendido de lo que son las propiedades vamos a ver los métodos y Funciones, los métodos y las funciones son muy similares la diferencia radica en que los métodos (NO RETORNAN VALOR), y las funciones (SIEMPRE RETORNAN UN SOLO VALOR). Ejemplo en código de visual basic es:

Método: Sub Nombre_del_Metodo (Parámetros_Requeridos)

(líneas de código) End sub Funciones: Function Nombre_de_la_Funcion (Parámetros_Requeridos) as Valor_a_devolver

(líneas de código) Nombre_de_la_funcion = Valor End function Como ya supongo que ustedes saben ya de esto, ahora vamos a explicar los Eventos, los eventos son aquellas reacciones de un control sobre algo que sucede a su alrededor, es decir, cuando se pulsa una tecla en un control se produce un evento que se llama Keypress, nosotros podemos ahí codificar como va reaccionar el control cuando se presione una determinada tecla, los eventos son muchos (MOUSEDOWN, MOUESUP, GETFOCUS, etc) dependiendo del tipo de control, cuando nosotros creamos un control podemos utilizar eventos ya creados o crear nuestros propios eventos. OBJETOS Los objetos son el elemento central de la programación en Visual Basic. Los formularios y controles son objetos. Las bases de datos son objetos.

Procedimientos Un procedimiento es un bloque de instrucciones de Visual Basic incluido entre una instrucción de declaración (Function, Sub, Operator, Get, Set) y una declaración End correspondiente. En Visual Basic, todas las instrucciones ejecutables deben incluirse en algún procedimiento. Los procedimientos se invocan desde otras partes del código. Esto se conoce como una llamada a procedimiento. Cuando finaliza la ejecución de un procedimiento, éste devuelve el control al código que lo invocó, que recibe el nombre de código de llamada. El código de llamada es una instrucción o una expresión contenida en una instrucción, que hace referencia al procedimiento por su nombre y le transfiere el control. Procedimientos y código estructurado Todas las líneas de código ejecutable de una aplicación deben encontrarse dentro de un procedimiento, por ejemplo, Main, calculate o Button1_Click. La aplicación se leerá con mayor facilidad si subdivide los procedimientos

grandes en procedimientos más pequeños. Los procedimientos son útiles para realizar tareas repetitivas o compartidas, como cálculos de uso frecuente, manipulación de texto y controles, y operaciones con bases de datos. Se puede llamar a un procedimiento desde distintos lugares del código; de modo que los procedimientos se prestan a servir de unidades de creación de la aplicación. La estructuración del código en procedimientos aporta las siguientes ventajas: • Los procedimientos permiten desglosar los programas en unidades lógicas independientes. Es más fácil depurar unidades individuales que todo un programa sin procedimientos. • Después de desarrollar los procedimientos para el uso en un programa, puede utilizarlos en otros programas, a menudo con pocas o ninguna modificación. Esto ayuda a evitar la duplicación del código. Un procedimiento es una secuencia (con nombre) de instrucciones que se ejecutan como una unidad. Todo el código ejecutable debe estar contenido en un procedimiento. Los procedimientos no se pueden anidar dentro de otros procedimientos, se debe especificar en un bloque de código de manera independiente y cuando se desean realizar las acciones del procedimiento se llama al procedimiento o función. Una vez realizadas las acciones pertinentes se devuelve el flujo del programa al lugar desde donde se llamó ese procedimiento. Llamar a un procedimiento Los procedimientos se invocan desde otras partes del código. Esto se conoce como una llamada a procedimiento. Cuando finaliza la ejecución de un procedimiento, éste devuelve el control al código que lo invocó, que recibe el nombre de código de llamada. El código de llamada es una instrucción o una expresión contenida en una instrucción, que hace referencia al procedimiento por su nombre y le transfiere el control. Volver de un procedimiento Los procedimientos devuelven el control al código de llamada cuando finalizan su ejecución. Para ello, puede utilizar Instrucción Return, la Instrucción Exit apropiada para el procedimiento o la instrucción End del procedimiento. El control se devuelve al código de llamada, a continuación del punto de la llamada al procedimiento. * Con una instrucción Return, el control vuelve inmediatamente al código de llamada. No se ejecutan las instrucciones siguientes a la instrucción Return. Puede tener más de una instrucción Return en el mismo procedimiento. * Con una instrucción Exit Sub o Exit Function, el control vuelve inmediatamente al código de llamada. No se ejecutan las instrucciones siguientes a la instrucción Exit. Puede tener más de una instrucción Exit en el mismo procedimiento, y puede mezclar las instrucciones Return y Exit en el mismo procedimiento. * Si un procedimiento no incluye instrucciones Return o Exit, concluye con una instrucción End Sub o End Function, End Get o End Set a continuación de la última instrucción del cuerpo del procedimiento. La instrucción End devuelve el control inmediatamente al código de llamada. Puede tener sólo una instrucción End en un procedimiento.

Tipos de procedimientos • Procedimientos Sub: ejecutan acciones pero no devuelven un valor al código de llamada. Los procedimientos de control de eventos son procedimientos Sub que se ejecutan en respuesta a un evento provocado por una acción del usuario o por un suceso en un programa. • Procedimientos Function: devuelven un valor al código de llamada. Pueden realizar otras acciones antes de volver. • Procedimientos de propiedad: devuelven y asignan valores de propiedades en objetos o módulos. • Procedimientos de operador: definen el comportamiento de un operador estándar cuando uno o los dos operandos son una clase definida recientemente o una estructura. La sintaxis es: Sub nombre (parametro1, parametro2...) ... Código del procedimiento

End Sub

Banco de Preguntas Pregunta 1 ¿QUÉ ES UN PROCEDIMIENTO? Un procedimiento es el lenguaje(codigo) con el que podras manipular los objetos de Excel y crear tus propias aplicaciones(claro mas adelante) por ahora macros utiles. Un procedimiento es un bloque de instrucciones de Visual Basic incluido entre una instrucción de declaración (Function, Sub, Operator, Get, Set) y una declaración End correspondiente. En Visual Basic, todas las instrucciones ejecutables deben incluirse en algún procedimiento.

Pregunta 2 ¿CÓMO SE LLAMA A UN PROCEDIMIENTO?

Para llamar a un procedimiento basta con que se escriba el nombre que se le ha asignado a dicho procedimiento en la línea de código en donde sea requerido. Los procedimientos se invocan desde otras partes del código. Esto se conoce como una llamada a procedimiento. Cuando finaliza la ejecución de un procedimiento, éste devuelve el control al código que lo invocó, que recibe el nombre de código de llamada. El código de llamada es una instrucción o una expresión contenida en una instrucción, que hace referencia al procedimiento por su nombre y le transfiere el control.

Pregunta 3 Seleccione la respuesta correcta ¿Cuales de los siguientes son tipos de Procedimiento? a. Procedimientos Function b. Procedimientos de propiedad c. Procedimientos de operador d. Procedimientos Sub e. Procedimiento select f. todas las anteriores g. son correctas a,b,c,d Respueta: g

Pregunta 5 ¿enumere los tipos de procedimientos? • Procedimientos Sub: ejecutan acciones pero no devuelven un valor al código de llamada. Los procedimientos de control de eventos son procedimientos Sub que se ejecutan en respuesta a un evento provocado por una acción del usuario o por un suceso en un programa. • Procedimientos Function: devuelven un valor al código de llamada. Pueden realizar otras acciones antes de volver.

• Procedimientos de propiedad: devuelven y asignan valores de propiedades en objetos o módulos. • Procedimientos de operador: definen el comportamiento de un operador estándar cuando uno o los dos operandos son una clase definida recientemente o una estructura.

Pregunta 6 Un procedimiento se puede anidar dentro de otro procedimiento Elija la respuesta correcta a) si b) no respuesta no

Pregunta 7 QUE ES UN METODO Los métodos son un conjunto de procedimientos que permiten que un objeto ejecute una acción o tarea sobre sí mismo.

Pregunta 8 QUE SON CONTROLES

Son los objetos que conforman la interfaz gráfica de un programa; a través de ellos, un usuario interactúa con la aplicación. Sus características pueden cambiarse por medio de la ventana propiedades.

Pregunta 9 QUE SON CLASES Una clase no es nada mas que un Objeto, este objeto, tiene propiedades, funciones y métodos. Para empezar ahora la creación de propiedades si se utiliza Property Let y Property Get.

Pregunta 10 ¿PARA QUE SIRVE EL COMANDO MID? Sirve para coger el valor por posicion de una cadena de caracteres.

EJEMPLO:

Private Sub CommandButton1_Click() Dim CELULAR As String * 9 Dim NUM(8) As String Dim I As Integer CELULAR = TextBox1.Value NUM(0) = Mid(CELULAR, 1, 1) NUM(1) = Mid(CELULAR, 2, 1) NUM(2) = Mid(CELULAR, 3, 1) NUM(3) = Mid(CELULAR, 4, 1) NUM(4) = Mid(CELULAR, 5, 1)

NUM(5) = Mid(CELULAR, 6, 1) NUM(6) = Mid(CELULAR, 7, 1) NUM(7) = Mid(CELULAR, 8, 1) NUM(8) = Mid(CELULAR, 9, 1) For I = 0 To 8 ListBox1.AddItem NUM(I) Next End Sub

Pregunta 11 GUARDAR ARCHIVOS CON MACROS Cuando guardamos un archivo y queremos que las Macros que hemos creado se almacenen con el resto de las hojas de cálculo deberemos utilizar un tipo de archivo diferente. Para ello deberemos ir al Botón Office y seleccionar la opción Guardar como. Se abrirá el cuadro de diálogo Guardar como. En el desplegable Guardar como tipo seleccionar Libro de Excel habilitado para macros (*.xlsm).

Dale un nombre y el archivo se almacenará. Cuando abrimos un archivo que tiene Macros almacenadas se nos mostrará este anuncio bajo la banda de opciones:

Esto ocurre porque Office no conoce la procedencia de las Macros. Como están compuestas por código podrían realizar acciones que fuesen perjudiciales para nuestro equipo. Si confías en las posibles Macros que contuviese el archivo o las has creado tú pulsa el botón Opciones para activarlas. Aparecerá este cuadro de diálogo:

Selecciona la opción Habilitar este contenido y pulsa Aceptar.

Pregunta 12 ¿Un objeto o control tiene distintas propiedades las cuales solo se puede cambiar(capturar) visualmente. Esto es Cierto o no explique? Esta afirmación es negativa. Porque todo objeto o control puede ser modificado con sus propiedades tanto visualmente como por código según sea la necesidad del programador o de la aplicación a realizar.

Pregunta 13 ¿QUE ES UN OBJETO? Es una combinación de código y datos que pueden tratarse como una unidad, puede ser una porción de una aplicación, como un control o un formulario.

Pregunta 14 CONTROL LISTBOX VISUAL BASIC

Este componente permite procesar visualmente un conjunto de elementos de tipo string. Su primer y mas importante aspecto a recordar, cuando se procese o programe, es que el primer indice de la lista, es el indice numero 0(cero). Este componente, contiene muchas propiedades y métodos que facilitan el trabajo con datos, entre ellas se encuentran: PROPIEDAD ACCIÓN O SIGNIFICADO

Pregunta 15 ¿Cuáles son las ventajas de reutilizar el código? El objetivo es que reutilizando el codigo mediante funciones o metodos ademas de ahorrar el espacio de memoria del programa podemos agilitar los procesos que deseamos que se realizen . otra ventaja muy importante es que mediante una función podemos reducir de una manera óptima el código utilizado dentro de una aplicación .

Pregunta 16 ¿En que consisten los procedimientos Sub?

Un procedimiento Sub consiste en una serie de instrucciones de Visual Basic delimitadas por las instrucciones Sub y End Sub. El procedimiento Sub ejecuta una tarea y devuelve el control al código de llamada, pero no le devuelve un valor. Cada vez que se llama a un procedimiento, se ejecutan las instrucciones de éste, desde la primera instrucción ejecutable tras la instrucción Sub hasta la primera instrucción End Sub, Exit Sub o Return que se encuentre. Se puede definir un procedimiento Sub en módulos, clases y estructuras. Es Public de forma predeterminada, lo que significa que puede llamarlo desde cualquier lugar de la aplicación que tenga acceso al módulo, clase o estructura en el que se ha definido. El término método describe un procedimiento Sub o Function al que se tiene acceso desde fuera de su módulo, clase o estructura en el que se ha definido. Para obtener más información, vea Métodos de una clase. Un procedimiento Sub puede aceptar argumentos, como constantes, variables o expresiones, que le pasa el código de llamada.

Pregunta 17 ¿Cuál es la sintaxis que se utiliza en los procedimientos Sub? y escriba un ejemplo La sintaxis para declarar un procedimiento Sub es la siguiente: [modifiers] Sub subname[(parameterlist)] Ejemplo: Sub Procedimientos()

Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer

Dim f As Integer Dim g As Integer a = InputBox("Ingrese primer valor:") b = InputBox("Ingrese segundo valor:") c = Suma(a, b) d = Resta(a, b) e = Multiplicación(a, b) f = División(a, b) g = Potencia(a, b)

MsgBox c MsgBox d MsgBox e MsgBox f MsgBox g

End Sub

Private Function Suma(a1 As Integer, b1 As Integer) As Long Suma = a1 + b1 End Function

Private Function Resta(a2 As Integer, b2 As Integer) As Long Resta = a2 - b2 End Function Private Function Multiplicación(a3 As Integer, b3 As Integer) As Long Multiplicación = a3 * b3 End Function Private Function División(a4 As Integer, b4 As Integer) As Long División = a4 / b4 End Function

Private Function Potencia(a5 As Integer, b5 As Integer) As Long Potencia = a5 ^ b5 End Function

Pregunta 18 ¿Qué son procedimientos genéricos en Visual Basic? Un procedimiento genérico, también denominado método genérico, es el que está definido con al menos un parámetro de tipo. Esto permite que el código de llamada ajuste los tipos de datos a sus requisitos cada vez que llama al procedimiento. El simple hecho de estar definido dentro de una clase o estructura genérica no convierte en genérico al procedimiento. Para ser genérico, el procedimiento debe tomar por lo menos un parámetro de tipo, además de cualquier otro parámetro normal que pueda a tomar. Una clase o estructura genérica puede contener procedimientos que no sean genéricos; y las clases, estructuras o módulos no genéricos pueden contener procedimientos genéricos. Un procedimiento genérico puede utilizar los parámetros de tipo en su lista de parámetros normales, en su tipo de valor devuelto, si existe, y en su código de procedimiento.

Pregunta 19 ¿Cómo utilizar una clase genérica? Una clase que toma parámetros de tipo se denomina clase genérica. Si está utilizando una clase genérica, puede generar una clase construida desde ella proporcionando un tipo de argumento para cada uno de estos parámetros. Entonces puede declarar una variable del tipo de clase construida, crear una instancia de clase construida y asignarla a esa variable. Además de las clases, también puede definir y utilizar estructuras genéricas, interfaces, procedimientos y delegados. El procedimiento siguiente toma una clase genérica definida en .NET Framework y crea una instancia a partir de ella. Para utilizar una clase que toma un parámetro de tipo Al principio de su archivo de código fuente, incluya una Imports (Instrucción) para importar el espacio de nombres System.Collections.Generic. Así podrá hacer referencia a la clase System.Collections.Generic.Queue sin necesidad de asignarle un nombre completo para diferenciarla de otras clases de cola como System.Collections.Queue. Cree el objeto de la manera normal, pero agregue (Of type) inmediatamente después del nombre de clase. El ejemplo siguiente utiliza la misma clase (System.Collections.Generic.Queue) para crear dos objetos de cola que contienen elementos de distintos tipos de datos. Así se agregan los elementos al final de cada cola y, a continuación, se quitan y muestran los elementos del principio de cada cola.

CopiarPublic Sub usequeue() Dim queueDouble As New System.Collections.Generic.Queue(Of Double) Dim queueString As New System.Collections.Generic.Queue(Of String) queueDouble.Enqueue(1.1) queueDouble.Enqueue(2.2) queueDouble.Enqueue(3.3) queueDouble.Enqueue(4.4) queueString.Enqueue("First string of three") queueString.Enqueue("Second string of three") queueString.Enqueue("Third string of three") Dim s As String = "Queue of Double items (reported length " _ & CStr(queueDouble.Count) & "):" For i As Integer = 1 To queueDouble.Count s &= vbCrLf & CStr(queueDouble.Dequeue()) Next i s &= vbCrLf & "Queue of String items (reported length " _ & CStr(queueString.Count) & "):" For i As Integer = 1 To queueString.Count s &= vbCrLf & queueString.Dequeue() Next i MsgBox(s)

End Sub

Pregunta 20 ¿Qué son los procedimientos de propiedad? Un procedimiento de propiedad es una serie de instrucciones de Visual Basic que manipulan una propiedad personalizada en un módulo, una clase o una estructura. Los procedimientos Property también se conocen como descriptores de acceso de propiedades. Visual Basic proporciona los procedimientos de propiedad siguientes: Un procedimiento Get devuelve el valor de una propiedad. Se le llama al tener acceso a la propiedad en una expresión. Un procedimiento Set establece una propiedad en un valor, incluida una referencia a objeto. Se le llama al asignar un valor a la propiedad. Se suelen definir procedimientos de propiedad en pares, mediante las instrucciones Get y Set, pero también se puede definir uno de los procedimientos solamente si la propiedad es de sólo lectura (Get (Instrucción)) o de sólo escritura (Instrucción Set (Visual Basic)). Las propiedades pueden definirse en clases, estructuras y módulos. Las propiedades son Public de manera predeterminada, lo que significa que es posible llamarlas desde cualquier parte de la aplicación que tenga acceso al contenedor de propiedades.

Colecciones de Objetos en Excel Para entender lo que es recolección de objetos en VBA, sólo piensa en una colección de coches. Los objetos de su colección de coches en coche puede ser de diferentes tamaños, colores y marcas, pero son todos los coches. Por lo tanto, colección de objetos de VBA significa que es un grupo o colección de los mismos tipos de objetos de la Por ejemplo, cualquier objeto libro pertenece a un objeto de colección Workbooks. El objeto de la colección Cuadernos de trabajo contiene todos los objetos abiertos libro. La ventana de Excel se muestra en la Figura 3.1 contiene tres objetos abierta libro (Libro1, Book2, y Book3). Colección de objetos le permiten trabajar con objetos como un grupo en vez de sólo trabajar con un único objeto

El examinador de objetos

Permite examinar todos los objetos que se encuentren disponibles en un determinado proyecto y ver sus propiedades, métodos y eventos. Además, puede con el examinador de objetos es posible ver los procedimientos y constantes que están actualmente disponibles en las bibliotecas de objetos en el proyecto. Puede mostrar fácilmente Ayuda en pantalla cuando examina. Puede utilizar el Examinador de objetos para encontrar y utilizar objetos que ha creado y también objetos de otras aplicaciones.

Puede obtener ayuda acerca del Examinador de objetos buscando Examinador de objetos en Ayuda. Un cuadro de diálogo q le permite examinar el contenido de una biblioteca de objetos para obtener información sobre los objetos que proporciona. Aprueba diferenciar entre las propiedades integradas, métodos y procedimientos definidos por el interesado. Muestra qué elementos son accesibles globalmente. Muestra que la función devolver nombres de parámetro y tipos de tipos y definido por el usuario. Muestra en el panel Objetos las estructuras jerárquicas dentro del ámbito de exploración actual. Este pued expandir las estructuras del panel Objetos para poder de esta maneera ver listas ordenadas de sus miembros. Al expandir un objeto, también enumera los objetos disponibles q puedes usar en tu proyecto y t proporciona una manera rápida de desplazarte a través del código. Puedes usar el Examinador de objetos para explorar objetos en Visual Basic y otras aplicaciones, ver qué métodos y propiedades están disponibles para esos objetos, y pegar código de procedimientos en tu aplicación. Para abrirlo, basta con pulsar F2 El desplegable donde pone Todas sirve para elegir una parte de todo lo que nos puede mostrar. En este caso está mostrando todo lo que tienen el proyecto. Si observa la figura de la página siguiente verá que está desplegado, mostrando todas las referencias y controles que tienen en ese momento. Puede ver que tienen el MSCommDlg, porque a ese proyecto le habíamos introducido el CommonDialog. Si seleccionamos ese control, nos aparecen en la ventana Classes todas las colecciones que tiene el CommonDialog, entre ellas el propio control, que si lo seleccionamos, en la ventana de la derecha, (Miembros) aparecerán todas la propiedades, los métodos, y los eventos (Claro que un CommonDialog no tienen eventos, pero sí aparecerán si mostramos cualquier otro control) Si le añadimos ahora una referencia (El acceso a una base de datos mediante DAO, por ejemplo) aparecerá esa referencia en la lista desplegable. Los controles básicos aparecen en la referencia VB. Aparecen concretamente los controles que figuran en la barra de herramientas al abrir un nuevo proyecto. Si añadimos más componentes (Haciendo clic en la barra de menú Proyecto | Componentes) veremos que aparecen nuevos controles en el desplegable.

Examinador de objetos El Examinador de objetos le permite seleccionar y examinar los símbolos que se pueden utilizar en proyectos. Puede abrir el Examinador de objetos desde el menú Ver o haciendo clic en el botón Examinador de objetos de la barra de herramientas principal. Hay tres paneles: un panel Objetos a la izquierda, un panel Miembros en la parte superior derecha y un panel Descripción en la parte inferior derecha. Si cambia el tamaño del Examinador de objetos para que sólo tenga una columna, el panel Objetos se desplazará a la parte superior, el panel Miembros al medio y el panel Descripción a la parte inferior. En el panel Objetos, los iconos identifican las estructuras jerárquicas como componentes .NET Framework y COM, espacios de nombres, bibliotecas de tipos, interfaces, enumeraciones y clases. Puede expandir estas estructuras para mostrar listas ordenadas de sus miembros. En el panel Miembros se muestran propiedades, métodos, eventos, variables, constantes y otros elementos contenidos. En el panel Descripción se muestran detalles sobre el elemento seleccionado en el panel Objetos o Miembros. El ámbito de exploración se puede restringir a los proyectos que está desarrollando y a los componentes a los que hacen referencia, o bien se puede ampliar para incluir todo .NET Framework, todos los componentes COM instalados en el equipo y todos los componentes externos a los que puede tener acceso. También puede especificar un conjunto personalizado de carpetas para examinar. Para obtener más información, vea Cómo: Ver y modificar el ámbito de exploración. Para poder desplazarse de un símbolo a un símbolo relacionado se debe seguir los siguientes pasos: 1. Seleccione el símbolo en el panel Objetos o Miembros. De esta forma, se actualiza el panel Descripción y en él se muestran los símbolos relacionados, como el objeto primario, los tipos de parámetros y de valores devueltos, y los valores constantes predeterminados. 2. En el panel Descripción, haga clic en el vínculo del símbolo que desee. El Examinador de objetos mostrará el símbolo relacionado y este símbolo se agregará al historial. Y para desplazarse por el historial se debe hacer lo siguiente: • Haga clic en el botón Atrás (flecha izquierda) para volver al símbolo seleccionado anteriormente. Puede repetir esta operación varias veces para desplazarse por los símbolos previamente seleccionados hasta que llegue al primer elemento examinado

El Examinador de objetos da lugar a seleccionar y examinar, símbolos que se pueden utilizar en proyectos. Puede abrir el Examinador de objetos desde el menú Ver o haciendo clic en el botón Examinador de objetos de la barra de herramientas principal. Existen tres paneles: un panel Objetos a la izquierda, un panel Miembros en la parte superior derecha y un panel Descripción en la parte inferior derecha. Si cambia el tamaño del Examinador de objetos para que sólo tenga una columna, el panel Objetos se desplazará a la parte superior, el panel Miembros al medio y el panel Descripción a la parte inferior. El examinador de objetos muestra las clases, propiedades, métodos, eventos y constantes disponible en las bibliotecas de objeto y los procedimientos del proyecto. Este cuadro de diálogo sirve para buscar y utilizar objetos creados por el usuario así como objetos de otras aplicaciones. COMPONENETES DEL EXAMINADOR DE OBJETOS Cuadro Proyecto/Biblioteca: Muestra las bibliotecas que tienen establecida una referencia actualmente correspondientes al proyecto activo. Puede agregar bibliotecas en el cuadro de diálogo Referencias. Cuadro Texto de búsqueda: Contiene la cadena que desea utilizar para la búsqueda. Puede escribirla o elegir la cadena que desee. Botón Volver: Permite retroceder a la selección anterior de las listas Clases y Miembros de. Cada vez que hace clic, retrocede una selección hasta que haya pasado por todas las selecciones. Botón Avanzar: Permite repetir las selecciones originales en las listas Clases y Miembros de cada vez que haga clic hasta que se agote la lista de selecciones. Botón Copiar al portapapeles: Copia en el portapapeles la selección actual de la lista Miembros de o el texto del panel Detalles. Botón Ver definición: Mueve el cursor al lugar de la ventana Código en el que se define la selección de las listas Miembros de o Clases. Botón Ayuda: Muestra el tema de Ayuda en pantalla correspondiente al elemento seleccionado en las listas Clases o Miembros de. Equivale a presionar la tecla F1. Botón Búsqueda: Inicia la búsqueda, en las bibliotecas, de la clase o propiedad, método, evento o constante que coincida con la cadena introducida en el cuadro Texto de búsqueda y abre el panel Resultados de la búsqueda.

Botón Mostrar/Ocultar resultados de la búsqueda: Abre u oculta el panel Resultados de la búsqueda. Lista Resultados de la búsqueda: Muestra la biblioteca, la clase y el miembro que corresponde a los elementos que contienen la cadena de búsqueda. Lista Clases: Muestra todas las clases disponibles en la biblioteca o proyecto seleccionado en el cuadro Proyecto/Bibliotecas. Lista Miembros: Muestra los elementos de la clase seleccionada en el panel Clases ordenados por grupo y después por orden alfabético dentro de cada grupo. Panel Detalles: Muestra la definición del miembro, este panel contiene un salto a la clase o biblioteca a la que pertenece el elemento. Puede copiar o arrastrar texto desde el panel Detalles a la ventana Código. Barra de división: Divide los paneles para que se pueda ajustar su tamaño. Hay divisiones entre:



El cuadro Clases y el cuadro Miembros de.



La lista Resultados de la búsqueda y los cuadros Clases y Miembros de.



Los cuadros Clases y Miembros de y el panel Detalles.

dezplasarse por el examinador de objetos: Active un módulo. En el menú Ver, elija Examinador de objetos (F2), o utilice la barra de herramientas abreviada: Seleccione el nombre del proyecto o biblioteca que desea ver en la lista Proyecto/Biblioteca. Utilice la lista Clases para seleccionar la clase; utilice la lista Miembros para seleccionar los miembros específicos de la clase o proyecto. Vea información acerca de la clase o miembro que seleccionó en la sección Details en la parte inferior de la ventana.

Uso de la ventana Locales VENTANA LOCALES.- Le permite presentar todas las variables, matrices, objetos y miembros de objeto que sean visibles en un programa, procedimiento o método determinado. Esta ventana se activa cuando elige Locales en el menú Ventana de la ventana Depurador. Locales para Indica el procedimiento cuyas variables, matrices y objetos se muestran en la ventana Locales.

Nombre Muestra los nombres de las variables locales visibles.

Valor Muestra los valores actuales de las variables locales visibles.

Tipo Muestra los caracteres que representan los tipos de datos de las variables locales visibles.

Use el menú contextual para controlar la categoría de las variables que se mostrarán.

Para ver los valores de los elementos de matrices o propiedades de objeto, haga clic en el cuadro a la izquierda del nombre de objeto o matriz. La ventana Locales le permite ver las propiedades de todos los objetos en forma de jerarquía de contenedores. Muestra automáticamente todas las variables locales declaradas en el procedimiento actual y sus valores. se actualiza automáticamente cada vez que existen cambios. Cuando está visible la ventana Locales, se actualiza automáticamente cada vez que hay un cambio desde Ejecutar en el Modo de interrupción o que navega en presentación apilada.

Puede: Cambiar el tamaño de los encabezados de columnas arrastrando el borde a la derecha e izquierda. Cerrar la ventana haciendo clic en el cuadro Cerrar. Si no está visible el cuadro Cerrar, haga doble clic en la barra Título para hacer visible el cuadro Cerrar, después haga clic en él. PARTES DE LA VENTANA LOCALES: Expresión.- Muestra el nombre de las variables; no se pueden editar datos en esta columna. 

La primera variable de la lista es una variable de módulo especial y se puede ampliar para mostrar todas las variables de nivel de módulo en el módulo actual. Para un módulo de clase, se define la variable de sistema (Me). Para módulos estándar, la primera variable es el (nombre del módulo actual).



Las variables globales y las variables en otros proyectos no son accesibles desde la ventana de Locales.

Valor.- Muestra el valor de la variable. 

Se puede editar un valor y, después, presionar Enter, Flecha arriba, Flecha abajo, Tab, Mayús-Tab, o hacer clic en la pantalla para validar el cambio.



Si el cambio no se puede ejecutarse aparece un cuadro de mensaje describiendo el error, para cancelar el cambio presione la tecla Esc.



Las variables numéricas deben tener un valor en la lista.



Las variables de cadena pueden tener un valor de lista en blanco.



Las variables que contienen sub-variables pueden ampliarse y reducirse.

Tipo.- Muestra el tipo de variable, no se pueden editar datos en esta columna. Estas ventanas adicionales se proporcionan para la depuración de la aplicación. Sólo están disponibles cuando ejecutas la aplicación dentro del IDE.

Uso de la ventana Inmediato No te imprime nada porque has diseñado un procedimiento (método) y los métodos no devuelven valor alguno.

Prueba a redefinirla como Public Function Ultima() as long. Algo parecido a ésto: Código: Public Function Ultima() As Long On Local Error Resume Next Ultima = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row End Function

Si en la clase ThisWorkBook escribes el siguiente código: Código: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) On Local Error Resume Next Sheets(1).Cells(1, 6).Value = Ultima() End SubTendrás actualizado el núemro de filas de la hoja cada vez que el usuario añada o elimine datos.

La ventana Inmediato muestra la información que resulta de las instrucciones de depuración en el código o comandos escritos directamente en la ventana.

Ventana Inmediato: Se abre automáticamente si se interrumpe el tiempo de ejecución y se abre vacía. Con él puede 

Escribir o pegar una línea de código y presionar ENTRAR para ejecutarlo.



Copiar y pegar el código de la ventana Inmediato en la ventana Código pero no puede guardar el código en la ventana Inmediato.

Mostrar la ventana Inmediato En el menú Ver, elija ventana Inmediato (CTRL+G). El modo Inmediato de la Ventana de comandos se utiliza con fines de depuración como evaluar expresiones, ejecutar instrucciones, imprimir valores de variables, etc. Permite escribir expresiones que el lenguaje de programación evalúa o ejecuta durante la depuración. En algunos casos, es posible cambiar el valor de las variables. El modo Inmediato ahora también es compatible con Intellisense. También puede generar temporalmente comandos de Visual Studio .NET en el modo Inmediato. Esto puede ser útil si está depurando una aplicación en el modo Inmediato para ver o cambiar el valor de las variables pero todavía desea interactuar con el IDE mediante el uso de comandos. Nota Para generar un único comando de Visual Studio .NET en el modo Inmediato, el comando debe ir precedido por el signo mayor que (>). Por ejemplo, para pasar al modo Comando desde el modo Inmediato, el comando debe ir precedido por el signo mayor que (>). Para escribir varios comandos, cambie al modo Comando. Para ver los resultados de una expresión en la ventana Inmediato, especifique el método Print del objeto Debug, seguido de la expresión. Puede usar un signo de interrogación (?) como abreviación del método Print. Por ejemplo, Microsoft Visual Basic muestra el valor devuelto por la función personalizada PrimerDíaDelMesSiguiente si introduce algunas de las dos líneas siguientes en la ventana Inmediato: Debug.Print FirstOfNextMonth() ? FirstOfNextMonth() Permite: * Escribir o pegar una línea de código y presionar Entrar para ejecutarlo. * Copiar y pegar el código de la ventana Inmediato en la ventana Código pero no le permite guardar el código en la ventana Inmediato.

Nota: Las instrucciones de la ventana Inmediato se ejecutan en un contexto; es decir, como si se escribieran en un módulo específico.

Controlar una aplicación de Microsoft Office desde otra Microsoft Office 2007 (llamado oficialmente Sistema 2007 del Microsoft Office) es la versión más reciente para Windows de Sistema del Microsoft Office, Microsoft habitación de la productividad. Conocido antes como Oficina 12 en las etapas iniciales de su ciclo beta, fue lanzado a licencia del volumen clientes encendido 30 de noviembre, 2006[1] y puesto a disposición los clientes al por menor encendido 30 de enero, 2007. Éstas son, respectivamente, las mismas fechas Windows Vista fue lanzado a licenciar del volumen y a clientes al por menor. La oficina 2007 contiene un número de nuevas características, la persona notable de las cuales es más la enteramente nueva interfaz utilizador gráfico llamó Interfaz utilizador fluido[2] (designado inicialmente la cinta UI), substituyendo los menús y los toolbars que han sido la piedra angular de la oficina puesto que su inicio, por un toolbar tabulada, conocido como la cinta. La oficina 2007 requiere Windows XP con el paquete 2 o 3 del servicio, Servidor 2003 de Windows con el paquete 1 del servicio o más alto, o Windows Vista.[3] La oficina 2007 también incluye nuevos usos y las herramientas del servidor-lado. El jefe entre éstos es Surco, una colaboración y una habitación de la comunicación para empresas más pequeñas, que fue desarrollada originalmente cerca Redes del surco antes de ser adquirido por Microsoft en 2005. También se incluye Servidor 2007 de SharePoint de la oficina, una revisión importante a la plataforma del servidor para los usos de la oficina, que apoya “Servicios del Excel“, una arquitectura del servidor de cliente para los libros de trabajo de soporte del Excel que se comparten en tiempo real entre las máquinas múltiples, y es también viewable y editable con un Web page. Microsoft Frontpage se ha quitado de la habitación de la oficina enteramente. Se ha substituido cerca Diseñador de SharePoint del Microsoft Office, de que está dirigido hacia el desarrollo Portals de SharePoint. Sus contrapartes diseñador-orientadas Web de la expresión de Microsoft se apunta para el desarrollo general de la tela. Sin embargo, ninguno de los dos usos se incluye en habitaciones unas de los de la oficina. También, desde entonces reconocimiento de discurso y reconocimiento del cursivo ahora está la parte de Windows Vista, discurso y los componentes de la tinta se han quitado de la oficina 2007. [4][5] El reconocimiento del cursivo y de discurso trabaja con la oficina 2007 solamente en Windows Vista o Edición de la PC de la tableta de Windows XP. Cómo: Controlar errores en proyectos de Office Debido a la forma en que el código administrado interactúa con el código no administrado, Visual Studio no presenta los errores generados por las aplicaciones de Microsoft Office 2003 y Microsoft Office 2007. Para ver estos errores, configure el depurador para que se interrumpa al producirse excepciones de Common Language Runtime. NoteNota

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio. Para realizar interrupciones al producirse excepciones de Common Language Runtime 1. En el menú Depurar, haga clic en Excepciones. 2. Active las casillas de verificación que aparecen junto a Excepciones de Common Language Runtime.

Ahora todas las excepciones interrumpirán la ejecución y entrarán en el depurador, incluidas las que se hayan administrado y algunas excepciones de primera oportunidad del propio motor en tiempo de ejecución, que podrían no ser significativas para el proyecto en cuestión. En todos los proyectos aparecen errores relacionados con el hecho de no encontrar msosec, pero se pueden omitir sin problema. Estas excepciones de msosec no afectarán a la solución. También puede utilizar instrucciones Try...Catch en torno a sus métodos para detectar excepciones. Para obtener más información, vea Cómo: Comprobar código con un bloque Try...Catch en Visual Basic y Cómo: Controlar una excepción mediante Try y Catch (Guía de programación de C#). De forma predeterminada, Visual Studio tampoco muestra errores de depuración Just-InTime de los proyectos de Office; sin embargo, es posible habilitar esta característica para poder ver los errores que se producen. Para obtener más información, vea Depuración JustIn-Time. Desarrollo

El primer beta del Microsoft Office 2007, referido como Beta-1 en los email enviados a un número limitado de probadores, fue lanzado el 16 de noviembre de 2005. Los Beta-1 técnicos restauran fueron lanzados a los probadores el 13 de marzo de 2006. El técnicos restauran ediciones fijas en la instalación con la estructura 5308 de Windows Vista. La oficina 2007 2 beta fue anunciada cerca Bill Gates en WinHEC 2006, y fue lanzado inicialmente al público en ningún coste del Web site de Microsoft. Sin embargo, debido a un número sin precedente de transferencias directas, un honorario de $1.50 fue introducido para cada producto descargado después del 2 de agosto de 2006. El beta fue puesta al día el 14 de septiembre de 2006 en 2 beta técnicos restaura (Beta2TR). Incluyó un interfaz del usuario en modo actualización, una ayuda mejor de la accesibilidad, mejoras en la robustez de la plataforma, y una mayor funcionalidad. Las versiones beta continuaron funcionando en un modo reducido de la funcionalidad después del 1 de febrero de 2007. Si los usuarios descargaron el técnico restaure para poner al día 2 beta, después los usuarios podrían utilizar su funcionalidad completa hasta el 31 de marzo de 2007 para los productos y el 15 de mayo de 2007 del cliente para los productos del servidor. El programa beta terminado el 8 de noviembre de 2006, cuando Microsoft declaró el producto “lanzado a la fabricación” (RTM) y comenzado a fabricar el producto final. Después de RTM, la disponibilidad de la transferencia directa beta terminada. La oficina 2007 fue lanzada a los clientes que

licenciaban del volumen el 30 de noviembre de 2006, y al público en general encendido 30 de enero, 2007. Ediciones 2007 del sistema del Microsoft Office Edición Disponibilidad de la licencia Modelo de la licencia [8] Microsoft Office último 2007 Venta al por menor/ Edición limitada licencia del estudiante [9] Un dispositivo principal y un dispositivo portable adicional Empresa 2007 del Microsoft Office Licencia del volumen solamente Dependiente sobre programa que licencia del volumen Profesional del Microsoft Office más 2007 Licencia del volumen solamente Dependiente sobre programa que licencia del volumen Profesional 2007 del Microsoft Office Venta al por menor/ OEM Edición al por menor, un dispositivo principal y un dispositivo portable adicional; Edición del OEM, un dispositivo solamente Pequeña empresa 2007 del Microsoft Office Venta al por menor/ OEM /Licencia del volumen Edición al por menor, un dispositivo principal y un dispositivo portable adicional; Edición del OEM, un dispositivo solamente; licencia del volumen, dependiente sobre programa que licencia del volumen Estándar 2007 del Microsoft Office Venta al por menor/ OEM /Licencia del volumen Edición al por menor, un dispositivo principal y un dispositivo portable adicional; Edición del OEM, un dispositivo solamente; licencia del volumen, dependiente sobre programa que licencia del volumen Hogar y estudiante 2007 del Microsoft Office Venta al por menor/ OEM Edición al por menor, tres dispositivos en una casa; Edición del OEM, un dispositivo solamente; para el uso no comercial solamente Microsoft Office 2007 básico OEM solamente Un dispositivo Los empleados elegibles de compañías con los acuerdos de licencia del volumen para la oficina pueden obtener las copias para el uso en un ordenador personal.[10] Componentes de cada edición Componente Básico Hogar y estudiante Estándar Pequeña empresa Profesional Último Profesional más Empresa Ninguna caja tiró a disponible Ninguna caja tiró a disponible Ninguna caja tiró a disponible Procesador de textos Palabra Palabra Palabra Palabra Palabra Palabra Palabra Palabra Hoja de balance Excel Excel Excel Excel Excel Excel Excel Excel Presentaciones PowerPoint PowerPoint PowerPoint PowerPoint PowerPoint PowerPoint PowerPoint Calendario y E-mail Perspectiva Perspectiva Perspectiva Perspectiva Perspectiva Perspectiva Perspectiva Contabilidad Contabilidad expresa Contabilidad expresa Contabilidad expresa El publicar de escritorio Editor Editor Editor Editor Editor Base de datos Acceso Acceso Acceso Acceso Forme la creación InfoPath InfoPath InfoPath Colaboración Surco Surco el Nota-tomar OneNote OneNote OneNote IM/VOIP/Videoconferencing Comunicador Comunicador Notas: 1. Las herramientas adicionales incluyen gerencia contenta de la empresa, formas electrónicas, y La información endereza a gerencia capacidades 2. Según lo observado en el empaquetado, debajo de la rejilla de la comparación en la parte posteriora, no licencian al OEM y la edición al por menor 2007 del hogar y del estudiante para uso comercial, no lucrativo, o el ningún de rédito-generación. Esto se exhibe en los programas reales ellos mismos con una línea del texto después del nombre del programa.

Bandera no comercial en el Microsoft Word 2007

Nuevas características Interfaz utilizador El nuevo interfaz utilizador (UI), conocido oficialmente como Microsoft Office fluido,[11] [12] se ha puesto en ejecución en los usos del Microsoft Office de la base: Palabra, Excel, PowerPoint, Acceso, y en el inspector del artículo usado para crear o para corregir artículos individuales adentro Perspectiva. Estos usos se han seleccionado para el reacondicionamiento de UI porque se centran alrededor de ser autor del documento[13]. El resto de los usos en la habitación también será aumentado al UI nuevo en versiones subsecuentes.[14] La fuente del defecto usada en esta edición es Calibri. Los prototipos originales del nuevo interfaz utilizador fueron revelados en MEZCLA 2008 adentro Las Vegas.[15] Botón de la oficina El botón de la oficina 2007, situado en el tapa-izquierdo de la ventana, substituye Archivo el menú y proporciona el acceso a la funcionalidad común a través de todos los usos de la oficina, incluyendo la abertura, ahorro, imprimiendo, y compartiendo un archivo. Puede también cerrar el uso. Los usuarios pueden también elegir los esquemas de color para el interfaz. Cinta Cinta, un panel que contiene los botones y los iconos de comando, organiza comandos como sistema de Lengüetas, cada comandos relevantes que agrupan. Cada uso tiene un diverso sistema de las lengüetas que exponen la funcionalidad que el uso ofrece. Por ejemplo, mientras que el Excel tiene una lengüeta para las capacidades de representación gráfico gráficamente, la palabra no ofrece igual; en lugar tiene lengüetas para controlar el formato de un documento del texto. Dentro de cada lengüeta, las varias opciones relacionadas se pueden agrupar juntas. Cinta se diseña hacer las características del uso más discoverable y accesibles con pocos tecleos del ratón[16] con respecto al UI menu-based utilizó hasta la oficina 2007. No es posible quitar la cinta, modificarla, o substituirla por los menús por las funciones normales de la oficina 2007. Sin embargo, la cinta se puede reducir al mínimo simplemente por el doble que chasca el título de la sección activa, e.g el texto casero en el cuadro abajo.[17]Hay las agregaciones de los terceros que pueden traer menús a la oficina 2007. Cinta en el PowerPoint 2007 de Microsoft Lengüetas del contexto Algunas lengüetas, llamadas Lengüetas del contexto, aparezca solamente cuando se seleccionan ciertos objetos. Las lengüetas del contexto exponen específico de la funcionalidad solamente al objeto con el foco. Por ejemplo, seleccionar un cuadro trae para arriba Cuadros lengüeta, que presenta las opciones para ocuparse del cuadro. Semejantemente, el centrarse en una tabla expone opciones tabla-relacionadas en un cuadro específico. Las lengüetas del contexto siguen ocultadas cuando el objeto que trabaja encendido no se selecciona.

Vive la inspección previo El Microsoft Office 2007 también introduce una característica llamada “vive la inspección previo”, que aplica temporalmente el formato en el texto o el objeto enfocado cuando cualquier botón del formato está moused-sobre. Se quita el formato temporal cuando el indicador de ratón se mueve desde el botón. Esto permite que los usuarios tengan una inspección previo de cómo la opción afectaría el aspecto del objeto, sin realmente la aplicación de él. Mini Toolbar El “mini Toolbar nuevo” es un tipo de menú del contexto que se demuestre automáticamente (por defecto) cuando se selecciona el texto. El propósito de esta característica es proporcionar de fácil acceso a los comandos que ajustan a formato másusados sin requerir un tecleo del derecho-ratón-botón, como era necesario en más viejas versiones del software. Porque el mini Toolbar se exhibe automáticamente, sigue siendo semi-transparente hasta que el indicador de ratón se sitúa en el control para permitir una vista casi-sin obstáculo de cuál está debajo de él. También aparece sobre el menú del derecho-tecleo cuando los derecho-tecleos de un usuario en una selección de palabras. El mini Toolbar no es actualmente customizable. Acceso rápido Toolbar Acceso rápido toolbar, que se sienta en la barra del título, sirve como depósito de la mayoría de las funciones usadas, sin importar por ejemplo la cual el uso se está utilizando, excepto, deshacen/hacen de nuevo e imprimen. Acceso rápido toolbar es customizable, aunque esta característica es limitada comparada a los toolbars en versiones anteriores de la oficina. Cualquier comando disponible en el uso entero de la oficina se puede agregar a Acceso rápido toolbar, incluyendo los comandos no disponibles en la cinta y macros. Los atajos del teclado para los comandos uces de los en el toolbar son también completamente customizable, similar a las versiones anteriores de la oficina. Otras características de UI * Estupendo-tooltips, eso puede contener el texto ajustado a formato e incluso las imágenes, se utilizan para proporcionar descripciones detalladas de lo que lo hacen la mayoría de los botones. * Un resbalador del zumbido presente en la esquina fondo-derecha, permitiendo para la ampliación dinámica y rápida de documentos.

SmartArt Artículo principal: SmartArt

SmartArt, encontrado bajo lengüeta en la cinta en PowerPoint, palabra, Excel, y perspectiva del relleno, es un nuevo grupo fácilmente de diagramas editable y ajustados a formato. Hay 115 plantillas preestablecidas de la disposición de los gráficos de SmartArt en categorías tales como lista, proceso, ciclo, y jerarquía. Cuando un caso de un SmartArt se inserta, a

Cristal del texto aparece al lado de él dirigir al usuario a través del texto el entrar en los niveles jerárquicos. Cada gráfico de SmartArt, basado en su diseño, traz el contorno del texto, vuelto a clasificar según el tamaño automáticamente para el mejor ajuste, sobre el gráfico. Hay un número de “estilos rápidos” para cada gráfico que aplican efectos en gran parte diversos 3D al gráfico, y las formas y el texto del gráfico se pueden ajustar a formato con estilos de la forma y WordArt estilos. Además, los gráficos de SmartArt cambian sus colores, fuentes, y efectos para emparejar el tema del documento. Formatos del archivo Oficina XML abierto Artículo principal: Oficina XML abierto

El Microsoft Office utiliza un nuevo formato del archivo, llamado la oficina XML abierto, como el formato del archivo del defecto. Los documentos de la palabra (sin extensiones macro) ahora se ahorran usando una extensión de .docx más bien que la extensión tradicional de .doc. La palabra 2007 puede también ahorrar documentos en el viejo formato que es compatible con versiones anteriores de la palabra. Además, Microsoft ha hecho disponible una agregación libre conocida como “el paquete de la compatibilidad del Microsoft Office” que deja las ediciones de la oficina 2000-2003 abiertas, las corrige, y excepto los documentos creados bajo nuevo formato 2007. La oficina XML abierto se basa encendido XML y aplicaciones CIERRE RELÁMPAGO envase del archivo. Según Microsoft, los documentos creados en este formato son los hasta 75% más pequeños que los mismos documentos ahorrados con formatos anteriores del archivo del Microsoft Office, debido a la compresión de datos.[18] Excel del Microsoft Office y PowerPoint del Microsoft Office también utilice el nuevo OOXML formatos del archivo. Los archivos de la palabra que contienen macros se ahorran con la extensión .docm. Pdf Microsoft había anunciado inicialmente que apoyará la exportación a Formato de documento portable (pdf) en la oficina 2007. Sin embargo, debido a las objeciones legales de Sistemas del adobe, La oficina 2007 no tiene ayuda del pdf fuera de la caja, sino la ofrece algo como transferencia directa libre separada.[19][20] XPS Los documentos de la oficina 2007 se pueden también exportar como XPS documentos, vía otro plug-in libre que es también una transferencia directa separada. OpenDocument Microsoft mueve hacia atrás un esfuerzo de la abrir-fuente de apoyar OpenDocument en la oficina 2007, así como versiones anteriores (hasta la oficina 2000), a través de un

convertidor de diapositivo suplementario para la palabra, Excel y PowerPoint, y también a comando-línea utilidad.[21] En fecha 2008, la conversión de las ayudas del proyecto entre ODF y la oficina XML abierto archivan los formatos para los tres usos.[22] Sistema de la ayuda del usuario En el Microsoft Office 2007, Ayudantes de la oficina se han quitado totalmente debido a el sistema de ayuda mucho-mejorado. Una característica del nuevo sistema de ayuda es el uso extenso de Tooltips estupendo que explique en cerca de un párrafo lo que se realiza cada función. Algunos de ellos también utilizan diagramas o cuadros. Éstos aparecen y desaparecen como tooltips normales, y substituyen tooltips normales en muchas áreas. El contenido de la ayuda también integra directamente buscar y ver Oficina en línea artículos. Características de la colaboración SharePoint El Microsoft Office 2007 incluye las características engranadas hacia compartir de la colaboración y de los datos. Como tal, el Microsoft Office 2007 ofrece los componentes del servidor para los usos tales como Excel, conjuntamente con los cuales trabaje Servicios de SharePoint, para proporcionar una plataforma de la colaboración. SharePoint trabaja con el servidor 2007 de SharePoint del Microsoft Office, que se utiliza para recibir un sitio de SharePoint, y utiliza IIS y ASP.NET 2.0. El servidor del Excel expone servicios del Excel, que permite que corrigea y mantienea cualquier hoja de trabajo sea creada, vía los browsers de la tela. Ofrece Acceso del Web del Excel, el componente del cliente-lado que se utiliza para rendir la hoja de trabajo en un browser, Servicio del cálculo del Excel cuál es el componente del lado del servidor que puebla la hoja de trabajo con datos y realice los cálculos, y Servicio del Web del Excel eso expone funcionalidades del Excel como servicios individuales de la tela. SharePoint se puede también utilizar para recibir los documentos de la palabra para corregir de colaboración, compartiendo un documento. SharePoint se puede también utilizar para llevar a cabo diapositivas del PowerPoint en a Resbale la biblioteca, de que las diapositivas se pueden utilizar como plantilla del formato. También notificará a usuarios de una diapositiva automáticamente en caso de que se modifique la diapositiva de la fuente. También usando SharePoint, el PowerPoint puede manejar la revisión compartida de presentaciones. Cualquier documento recibido SharePoint se puede alcanzar del uso que creó el documento o de otros usos tales como un browser o una perspectiva del Microsoft Office. Surco El Microsoft Office 2007 también incluye Surco, que trae características de colaboración a un paradigma del par-a-par. Surco puede recibir los documentos, incluyendo las presentaciones, libros de trabajo y otros, creadas en el uso 2007 del Microsoft Office en un espacio de trabajo compartido, que se puede entonces utilizar en corregir de colaboración de documentos. Surco la poder también se utilice en sesiones de manejo del espacio de trabajo, incluyendo el control de acceso del espacio de trabajo. Para colaborar en unos o más documentos, a Espacio de trabajo tiene que ser creado, y entonces los que deben

trabajar en él tienen que ser invitados. Cualquier archivo compartido en el espacio de trabajo se comparte automáticamente entre todos los participantes. El uso también proporciona mensajería en tiempo real, incluyendo uno por así como mensajería del grupo, y características de la presencia, así como la supervisión de actividades del espacio de trabajo de las alarmas, se levantan que cuando el sistema predefinido de actividades se detecta. El surco también proporciona las características para la resolución del conflicto para estar en conflicto corrige. Los horario para una colaboración pueden también ser decididos usando un calendario compartido incorporado, que se puede también utilizar para no perder de vista el progreso de un proyecto. Sin embargo, el calendario no es compatible con Microsoft Outlook. Temas y estilos rápidos El Microsoft Office 2007 pone más énfasis en temas del documento y estilos rápidos. El tema del documento define los colores, las fuentes y los efectos del gráfico para un documento. Casi todo que se puede insertar en un documento se labra automáticamente para emparejar el tema total del documento que crea un diseño de documento constante. El nuevo formato del archivo del tema de la oficina (.THMX) se comparte entre los mensajes del email de la palabra, del Excel, del PowerPoint y de la perspectiva. Los temas similares están también disponibles para los informes de los datos en el acceso y proyecto o las formas en Visio. Los estilos rápidos son galerías con una gama de los estilos basados en el tema actual. Hay galerías rápidas de los estilos para el texto, las tablas, las cartas, SmartArt, WordArt y más. La gama del estilo va de simple/de luz a más gráfico/más oscuro. Cambios Application-specific Palabra del Microsoft Office Artículo principal: Microsoft Word * Hojas nuevas del estilo (estilos rápidos) y capacidad de cambiar fácilmente entre ellos. * Redacte la cuenta enumerada por el defecto en la barra de estado. De la palabra de la cuenta las actualizaciones dinámicamente como usted mecanografía. * Nuevo comprobador de ortografía del contexto, significado por una raya azul ondulada análoga a la raya roja ondulada tradicional para los faltas de ortografía y a la raya verde ondulada para los errores de la gramática, coge a veces uso incorrecto de palabras correctamente deletreadas, por ejemplo en “mí piensan que flojo esta batalla ". * Extremidad de herramienta de traducción opción disponible para el inglés (los E.E.U.U.), el francés (Francia), y el español (clase internacional). Cuando está seleccionado, el asomar el cursor del ratón sobre una palabra exhibirá su traducción en la lengua particular. Las versiones No-Inglesas tienen diversos sistemas de idiomas. Otras idiomas pueden ser agregadas usando un paquete multilingüe separado. * La generación automatizada de citaciones y de bibliografías según estilo definido gobierna, incluyendo APA, Chicago, y MLA. El estilo que cambia pone al día todas las referencias automáticamente. Conecte con los

servicios de la tela con las bases de datos en línea de la referencia del acceso. * Natural de Rearchitected ecuación matemática ayuda con TeX- como entrada linear/corrija la lengua o el interfaz del GUI. También apoya la codificación llana del texto de Unicode de las matemáticas.[23] * Preestablezca la galería de las páginas de cubierta con los campos para el autor, el título, la fecha, el extracto, el etc. Las páginas de cubierta siguen el tema del documento (encontrado bajo lengüeta de la disposición de página). * Motor de la comparación del documento puesto al día para apoyar los movimientos, diferencias en tablas, y también fácil seguir la opinión del tri-cristal del documento original, del nuevo documento, y de diferencias. * Disposición de la lectura de la pantalla completa que demuestra dos páginas a la vez con uso máximo de la pantalla, más algunas herramientas críticas para repasar. * Inspector del documento cuál pela documentos de la palabra de la información tal como nombre del autor y los comentarios y otros “meta datos”. * Bloques de edificio, que deja uno excepto contenido con frecuencia usado, de modo que él sea fácilmente accesible para el uso adicional. Los bloques de edificio pueden tener controles traz los datos en ellos a tener en cuenta el edificio de la forma o ser autor estructurado del documento. * Se ha quitado la capacidad de ahorrar versiones múltiples de un documento (que había existido desde la palabra 97).[24] * Entradas de Blog[25] puede ser sido autor en la palabra sí mismo y uploaded directamente a un blog. Los sitios blogging apoyados incluyen Espacios vivos de Windows, WordPress, SharePoint, Blogger, Servidor de la comunidad etc.

Perspectiva del Microsoft Office Artículo principal: Microsoft Outlook * Como cambio importante en la perspectiva 2007, se ha caído la ayuda del intercambio 5.5. Como Evolución, Outlook Express y Entourage, La perspectiva ahora trabaja solamente con el intercambio 2000 y arriba. * De la perspectiva índices ahora[26] (el usar Búsqueda de Windows APIs) los E-maices, contactos, tareas, entradas del calendario, RSS alimentaciones y otros artículos, acelerar búsquedas. Como tal, ofrece la búsqueda palabra-rodada, que exhibe resultados mientras que los caracteres se están mecanografiando el pulg. * Busque las carpetas, que son búsquedas ahorradas, se han puesto al día para incluir las alimentaciones de RSS también. Las carpetas de la búsqueda se pueden crear con los criterios específicos de una búsqueda, especificando el tema, el tipo y otras cualidades de la información que es buscada. Cuando se abre una carpeta de la búsqueda, todos los artículos que emparejan para la búsqueda se recuperan y se agrupan automáticamente para arriba. * La perspectiva ahora apoya texto-mensajes y SMSs, cuando está utilizada conjuntamente con el servidor 2007 del intercambio unificó mensajería. * La perspectiva incluye a lector para las alimentaciones de RSS, que utilizaron el almacén común de las alimentaciones de Windows. La suscripción URLs de RSS se puede compartir vía E-maices. Las

actualizaciones de la alimentación de RSS se pueden también empujar a un dispositivo móvil. * La perspectiva puede ahora apoyar los calendarios múltiples que son trabajados con, simultáneamente. También incluye de lado a lado una visión para los calendarios, donde cada calendario se exhibe en una diversa lengüeta, y permite la comparación fácil de ellos. La perspectiva también apoya calendarios de la tela. Los calendarios se pueden compartir con otros usuarios. * Demostraciones de la opinión de calendario que las tareas son debidas. * Los E-maices y las notas señalados por medio de una bandera se pueden también convertir a Tarea artículos. * La perspectiva incluye a Para hacer la barra, que integra el calendario, las citas y los artículos de las tareas, en una visión sucinta. * En línea o fuera de línea el corregir de todo el Microsoft Office 2007 documentos vía un sitio de SharePoint. Todo corrige se sincroniza automáticamente. * Los contactos se pueden compartir entre usuarios, vía E-mail, el servidor del intercambio o un sitio de SharePoint. * La inspección previo del accesorio permite que los usuarios vean los accesorios del E-mail de la oficina en el cristal de la lectura más bien que teniendo que abrir otro programa. * El HTML en E-maices ahora se rinde usando el Microsoft Word que rinde el motor que rechaza varias etiquetas del HTML tienen gusto objeto, escritura, iframe etc junto con varias características del CSS.

La perspectiva del Microsoft Office puede también incluir a un encargado opcional del contacto de negocio que permita la gerencia de los contactos de negocio y de sus ventas y actividades de la comercialización. Las llamadas telefónicas, los E-maices, las citas, las notas y la otra métrica del negocio se pueden manejar para cada contacto. Puede también guardar una pista de la hora facturable para cada contacto en el calendario de la perspectiva. De acuerdo con estos datos, una opinión consolidada del informe se puede generar por perspectiva del Microsoft Office con el encargado del contacto de negocio. Los datos se pueden analizar más a fondo usando Excel del Microsoft Office. Estos datos se pueden también compartir usando los servicios de SharePoint. Excel del Microsoft Office Artículo principal: Microsoft Excel * Apoye hasta 1.048.576 filas y 16.384 columnas en una sola hoja de trabajo, con 32.767 caracteres en un unicelular (17.179.869.184 células en una hoja de trabajo, 562.932.773.552.128 caracteres en una hoja de trabajo)[27] * Formato condicional introduce la ayuda para tres nuevas características - Escalas de color, Sistemas del icono y Barras de los datos o Escalas de color, que colorean automáticamente el fondo de un grupo de células con diversos colores según los valores. o Sistemas del icono, que preceden el texto en una célula con un icono que represente un cierto aspecto del valor de la célula con respecto a otros valores en un grupo de células, puede también ser aplicado. Los iconos se pueden aplicar condicional a demuestran para

arriba solamente cuando se resuelven ciertos criterios, por ejemplo una cruz que demuestra para arriba en un valor inválido, donde la condición para la invalidez se puede especificar por el usuario. o Barras de los datos demuestre como barra del gradiente en el fondo de una célula la contribución del valor de la célula en el grupo. * Los títulos de la columna pueden demostrar opcionalmente opciones para controlar la disposición de la columna. * Cálculo de Multithreaded de fórmulas, acelerar cálculos grandes, especialmente sobre sistemas multi-core/del multiprocesador. * Funciones definidas por el usario (UDF), que son de encargo las funciones escritas al suplemento sobresalieron el sistema de funciones incorporadas, apoyan el número creciente de células y de columnas. UDFs ahora puede también estar multithreaded. El servidor UDFs lateral se basa en .NET manejado código. * Se ha aumentado la importación de datos de fuentes externas, tales como una base de datos. Los datos se pueden también importar de las tablas ajustadas a formato y de los informes, que no tienen una estructura regular de la rejilla. * Fórmula Autocomplete, sugiere automáticamente nombres de la función, discusiones y gamas nombradas, y automáticamente terminarlas si está deseado, basado en los caracteres incorporados. Los fórmulas pueden referir a una tabla también. * Funciones del CUBO cuáles permiten el importar de datos, incluyendo datos agregados sistema, de servicios del análisis de datos, tales como servicios del análisis del servidor del SQL. * Disposición de página visión, ser autor de las hojas de balance de una manera que refleja el formato que será aplicado cuando está impreso. * PivotTables, que se utilizan para crear informes del análisis fuera de sistemas de datos, puede ahora apoyar datos jerárquicos exhibiendo una fila en la tabla con “+” el icono, que, cuando está chascado, demuestra más filas con respecto le, que puede también ser jerárquico. PivotTables se puede también clasificar y filtrar independientemente, y formato condicional usado para destacar tendencias en los datos. * Filtros, ahora incluye una opción rápida del filtro permitiendo la selección de artículos múltiples de una lista de la gota abajo de artículos en la columna. La opción al filtro basado en color se ha agregado a las opciones disponibles. * El Excel ofrece un motor que planea nuevo, que apoya el formato avanzado, incluyendo 3D que rinde, las transparencias y las sombras. Las disposiciones de la carta se pueden también modificar para requisitos particulares para destacar varias tendencias en los datos.

PowerPoint del Microsoft Office Artículo principal: PowerPoint de Microsoft * Las mejoras al texto que rendía para apoyar el texto basaron gráficos. * Representación de los gráficos 3D. * Ayuda para muchos más formatos del archivo de los sonidos tales como .mp3 y .wma. * Ayuda para las tablas y ayuda realzada para la tabla que pega de Excel.[28] * Resbale la biblioteca, que le deja reutilizar cualquier diapositiva o la presentación como plantilla. Cualquier presentación o diapositiva se puede publicar a Resbale la biblioteca.

* Cualquier biblioteca custom-designed de la diapositiva puede ser ahorrada. * Las presentaciones pueden digital ser firmadas. * Opinión mejorada del presentador.[29] * La ayuda agregada para widescreen diapositivas.[30] * Permite la adición de placeholders de encargo.

Microsoft Office OneNote Artículo principal: Microsoft OneNote * OneNote ahora apoya los cuadernos múltiples. * Los cuadernos se pueden compartir a través de las computadoras múltiples. Cualquier persona puede corregir incluso mientras que no están conectados y los cambios se combinan automáticamente a través de las máquinas cuando se hace una conexión. Los cambios se etiquetan con el autor y cambian hora/la fecha. * Plantillas del cuaderno. * la búsqueda Palabra-rodada está también presente en OneNote, que también pone en un índice notas. * Sincronización de Tareas con la perspectiva 2007. También la perspectiva puede enviar correos a OneNote, o abrir las páginas en OneNote que se ligan a las tareas, contactos, citas/reuniones. * Ayuda para las tablas. Usar lengüetas para crear la estructura tabular la convierte automáticamente a una tabla. * El OCR se realiza en imágenes (la pantalla acorta, fotos, exploraciones) de modo que cualquier texto en ellas sea investigable. * Las grabaciones audio y video también se marcan con etiqueta y se ponen en un índice, para poderlas buscar. * Las notas pueden tener hyperlinks entre sí mismos, o de OneNote exterior a un punto específico en una página. * Encajar documentos en notas. * Ayuda de la extensibilidad para el agregar-ins. * Herramientas de dibujo para crear diagramas en OneNote. * Mecanografiando cualquier expresión aritmética, seguida por “=” resultados en el resultado del cálculo que es exhibido. * Envíe a Microsoft OneNote, vía que cualquier uso puede imprimir a una impresora virtual para OneNote y el documento “impreso” se importa al cuaderno, y cualquier texto se pone en un índice para buscar. * Móvil de OneNote es incluido para Smartphones y algunos dispositivos de PocketPC. Syncs observa de dos vías con OneNote. Toma el texto, la voz, y notas de la foto.

Acceso del Microsoft Office Artículo principal: Microsoft Access * El acceso ahora incluye la ayuda para una gama más amplia de los tipos de datos, incluyendo documentos e imágenes. * Siempre que cualquier tabla sea actualizada, todos los informes que se refieren a la tabla también se ponen al día. * Las listas Dropdown para una tabla se pueden modificar en lugar. * Campos de las operaciones de búsqueda, que consiguen sus valores “mirando encima” de un cierto valor en una tabla, se han puesto al día para apoyar operaciones de búsqueda multi valoradas. * Muchos nuevos preestablecieron esquemas son incluidos.

* El acceso puede sincronizar con los servicios 3.0 de Windows SharePoint y el servidor 2007 de SharePoint de la oficina. Esta característica permite a un usuario utilizar informes del acceso mientras que usaba servidor-haber basado, sostenido, manejó la versión de los datos.

Editor del Microsoft Office Artículo principal: Editor de Microsoft * Las plantillas completan automáticamente de la información tal como nombre de compañía, insignia etc, dondequiera que sean aplicables. * El contenido con frecuencia usado se puede almacenar adentro Almacén contento para el acceso rápido. * Un documento se puede convertir automáticamente a partir de un tipo de la publicación, tal como un boletín de noticias, a otro tipo de la publicación, opinión un Web page. * Excepto como pdf apoya el pdf comercial de la calidad de impresión. * Fusión del catálogo pueden crear el contenido de la publicación automáticamente recuperando datos, incluyendo el texto, imágenes y otra los tipos apoyados, de una fuente de datos externa. * Inspector del diseño, que se utiliza para encontrar inconsistencias del diseño, se ha puesto al día.

Microsoft Office InfoPath Artículo principal: Microsoft InfoPath * Las formas diseñadas InfoPath se pueden ahora utilizar de un browser, con tal que el servidor esté funcionando servicios de las formas de InfoPath en SharePoint 2007 o La oficina forma el servidor. * Una forma se puede enviar para poblar vía E-mail. Tales formas se pueden completar de la perspectiva 2007 sí mismo. * Conversión automática de formas en palabra y del Excel a las formas de InfoPath. Las formas se pueden también exportar al Excel. * Las formas se pueden publicar a una parte de la red o al servidor de SharePoint. * Agregando la validación de datos, usando fórmulas de la validación, y características condicionales del formato sin manualmente escribir código. * Imprima la opinión de la disposición para diseñar las formas en una visión que reflejan la disposición impresa. Tales formas se pueden abrir usando palabra también. * Capacidad de utilizar el servidor de Microsoft SQL, el acceso del Microsoft Office, u otras bases de datos como depósito de datos back-end. * Visiónes múltiples para las mismas formas, exponer diversas características a diversa clase de usuarios. * Piezas de la plantilla, utilizado agrupar los controles de InfoPath de la oficina para el uso más adelante. Las piezas de la plantilla conservan su esquema de XML.

Microsoft Office Visio Artículo principal: Microsoft Visio * PivotDiagrams, que se utilizan para visualizar datos, grupos de los datos de la demostración y relaciones hierarchichal.

* Modificación visual de PivotDiagrams arrastrando datos alrededor de niveles, para reestructurar las relaciones de los datos. * PivotDiagrams puede demostrar los resúmenes estadísticos agregados para los datos y demostrarlos. * Las formas se pueden ligar a fuentes de datos externas. Haciendo así pues, las formas se ajustan a formato según los datos. Los datos, y por lo tanto las formas, se ponen al día periódicamente. Tales formas pueden también ser manualmente el usar ajustado a formato Gráficos de los datos característica. * AutoConnect: Acoplamiento fácilmente dos formas.[31] * Trasmisión de datos: Datos del acoplamiento a las formas.[32] * Gráficos de los datos: Los objetos dinámicos (texto y las imágenes) se ligaron a datos externos.[33] * Nuevo comportamiento del tema y nuevas formas.[34]

Proyecto del Microsoft Office Artículo principal: Proyecto de Microsoft * Capacidad de crear plantillas de encargo. * Cualquier cambio en el plan o el horario del proyecto destaca todo se afecte que. * Analice los cambios sin realmente confiarlos. Los cambios se pueden también hacer y deshacer programmatically, para automatizar el análisis de diversos cambios. * Gerencia y análisis mejorados de recurso del coste para los proyectos. * Los datos del proyecto se pueden utilizar para crear automáticamente cartas y diagramas en el Excel y el Microsoft Office Visio del Microsoft Office, respectivamente. * El horario del proyecto se puede manejar como carta de 3D Gantt. * Compartir datos del proyecto con la ayuda de los servicios de SharePoint.

Diseñador de SharePoint del Microsoft Office Artículo principal: Diseñador de Microsoft SharePoint

El diseñador 2007 de SharePoint del Microsoft Office es nueva adición a substituir de la habitación de la oficina continuado Frontpage para los usuarios de SharePoint. Pueble quiénes no utilizan SharePoint pueden utilizar el Web de la expresión de Microsoft. * Apoya las características y las construcciones que exponen la funcionalidad de SharePoint. * Ayudas ASP.NET 2.0 y Fundación del Workflow de Windows. * Ayuda para crear workflows e informes de los datos, de fuentes de datos externas. * Permite que los datos de XML sean el usar exhibido XSLT

Componentes del servidor Servidor 2007 de SharePoint Artículo principal: Servidor de SharePoint del Microsoft Office

El servidor 2007 de SharePoint del Microsoft Office permite que compartan y que corrigen de colaboración de documentos de la oficina 2007. Permite el almacenaje central de documentos y la gerencia de los documentos de la oficina, a través de la empresa. Estos documentos se pueden alcanzar cualquiera por los usos que los crearon, la perspectiva 2007 del Microsoft Office, o un web browser. Los documentos se pueden también manejar con las políticas predefinidas que dejan a usuarios crear y publicar el contenido compartido, a través de un sitio de SharePoint. El servidor de SharePoint permite buscar de todos los documentos de la oficina que estén siendo manejados por él, centralmente, de tal modo haciendo datos más accesibles. También proporciona el control de acceso para los documentos. Los componentes especializados del servidor pueden tapar en el servidor de SharePoint para ampliar la funcionalidad del servidor, por ejemplo Servicios del Excel exponer los servicios del análisis de datos para los servicios del Excel. Los datos de otras fuentes de datos se pueden también combinar con datos de la oficina. SharePoint también deja a usuarios personalizar los sitios de SharePoint, filtrando el contenido que están interesados pulg. Los documentos de SharePoint se pueden también localmente depositar por los clientes para fuera de línea corregir; los cambios se combinan más adelante. Servidor 2007 de las formas Artículo principal: Servidor de las formas del Microsoft Office

El servidor 2007 de las formas del Microsoft Office permite que llenaas las formas de InfoPath sean alcanzadas y hacia fuera usando cualquier browser, incluyendo los browsers del teléfono móvil. El servidor 2007 de las formas también apoya con la base de datos o la otra fuente de datos como el back-end para la forma. Además, permite el despliegue y la gerencia centralizados de formas. El servidor 2007 de las formas recibió la validación de los datos de apoyo de las formas también y el formato condicional, al igual que sus contrapartes de InfoPath. También apoya controles avanzados como Repetición de la sección y Repetición de la tabla. Sin embargo, algunos controles de InfoPath no pueden ser utilizados si tiene que ser recibido en un servidor de las formas. Servidor 2007 del surco Artículo principal: Servidor del surco del Microsoft Office

El servidor 2007 del surco del Microsoft Office está para centralmente manejar todos los despliegues de Surco del Microsoft Office 2007 en la empresa. Permite con Directorio activo para el surco el usuario considera, y crea el surco Dominios, con los ajustes individuales de la política. Permite que los espacios de trabajo del surco sean recibidos en el servidor, y los archivos en los espacios de trabajo hicieron disponible para corregir de colaboración vía el cliente del surco. También incluye Puente de los datos del servidor del surco componente para permitir la comunicación entre los datos almacenados en los clientes del surco y servidores y usos externos.

Servidor 2007 del proyecto Artículo principal: Servidor del proyecto del Microsoft Office

El servidor 2007 del proyecto del Microsoft Office permite que uno centralmente maneje y que coordine proyectos. Permite al presupuesto y al recurso que siguen, y a gerencia del plan de la actividad. Los datos y los informes del proyecto pueden también ser el usar más a fondo analizado Servicio del edificio del cubo. Los datos de la gerencia de proyecto se pueden alcanzar de un browser también. Servidor 2007 de la lista del proyecto Artículo principal: Servidor de la lista del proyecto del Microsoft Office

El servidor 2007 de la lista del proyecto del Microsoft Office permite la creación de una lista del proyecto, incluyendo los workflows, recibidos centralmente, de modo que la información esté disponible a través de la empresa, incluso de un browser. Él también ayudas en la agregación centralizada de los datos con respecto el planeamiento y a la ejecución del proyecto, y en visualizar y analizar los datos para optimizar el plan del proyecto. Puede también apoyar listas múltiples por proyecto, para seguir diversos aspectos de él. También incluye la divulgación de las herramientas para crear informes consolidados fuera de los datos del proyecto. Servidor 2007 de PerformancePoint Artículo principal: Servidor de PerformancePoint del Microsoft Office

El servidor de Microsoft PerformancePoint permite que los usuarios supervisen, que analicen, y que planeen su negocio así como la alineación de la impulsión, la responsabilidad, y la penetración actionable a través de la organización entera. Incluye las características para los scorecards, tableros de instrumentos, divulgación, analytics, presupuestando y pronosticando, entre otros. Crítica Aun cuando la cinta puede ser ocultada, Mundo de la PC escribió ese a nuevas muchedumbres del interfaz de la “cinta” el área de trabajo de la oficina, especialmente para los usuarios del cuaderno.[35] Otros han llamado sus iconos grandes que distraían.[36] Mundo de la PC ha indicado que aumentando a los presentes de la oficina 2007 peligros a ciertos datos, tales como plantillas, a las macros, y a los mensajes del correo.[37] Algunos usuarios se han quejado por la pérdida de toolbars flotantes con los iconos y los botones customizable del texto. El nuevo formato XML-basado del archivo de .docx para la palabra es incompatible con versiones anteriores a menos que un plugin esté instalada en la más vieja versión.

El redactor 2007 de la ecuación de la palabra es incompatible con el de la palabra 2003 y de versiones anteriores, y cuando convertir DOCX archiva al doc. archiva, las ecuaciones se rinde como gráficos. Por lo tanto la palabra 2007 no se puede utilizar para publicar, archivo-compartir y el esfuerzo de colaboración en ninguna campos matemática-basada, incluyendo la ciencia y la tecnología, en las cuales los usuarios pueden tener versiones anteriores de la palabra. Muchos editores que representan todos los niveles no aceptan sumisiones en la palabra 2007. Los editores académicos por ejemplo han informado a Microsoft que esto seriamente deteriora la utilidad de la palabra 2007's para publicar de estudiante.

Objeto Application y Windows QUE SON LAS APLICACIONES: En esta seccion crearemos una aplicación en Visual Basic Para crear una aplicación en VB se deben realizar tres pasos principales: 1. Diseñando la Interface. Se crea una forma colocando sobre ella los controles u objetos necesarios, cambiandolos de lugar y/o de tamaño. Esta será la presentación de nuestra aplicación. 2. Dando valores a las propiedades de los objetos colocados en la forma y a la forma misma. 3. Escribir el código en los objetos para indicar que acciónes o eventos se deberán realizar cuando el usuario interaccione con estos objetos. Este paso es conocido como " Dar funcionalidad a la aplicación". Antes de empezar a constuir tu programa, es necesario que primero lo tengas planeado. Deberás entender las caracteristicas de los objetos contenidos en las diferentes pantallas, todo esto para que la interface sea amigable y funcional. VB te da una descripción de cada uno de los controles de la caja de herramientas (toolbox), para ver esto, selecciona el menú Help, enseguida ejecuta el comando search..., en el campo de la nueva ventana escribe toolbox y da enter, en la ventana de abajo da doble click sobre toolbox. QUE SON LAS PROPIEDADES: Nota Todas las propiedades son de sólo lectura excepto "Visible". - Application: Devuelve un puntero a este objeto, que es el objeto raìz en la jerarquìa de objetos. - Parent: Devuelve un puntero a este objeto.

- FullName: Devuelve el nombre de la aplicación, incluyendo la ruta. - Name( ): Devuelve el nombre de la aplicación - "FileMaker Pro". - Caption: Devuelve el tìtulo de la ventana para la ventana marco. Siempre se configura el tìtulo de FileMaker Pro para describir el documento actualmente activo y los clientes no lo pueden configurar de otra forma. - DefaultFilePath: Devuelve la especificación de la ruta predeterminada empleada para abrir archivos. - Documents: Devuelve un puntero al objeto del conjunto Documents para que se puedan abrir, acceder y ejecutarse los objetos Document individuales mediante guiones. - Version: Devuelve la versión de FileMaker Pro. - Visible: Devuelve TRUE si la aplicación es visible. Asigne el valor TRUE para mostrar la aplicación, y FALSE para ocultarla. - ScriptStatus( ): Devuelve 2 si se está ejecutando un guión, 1 si el guión está en pausa, o 0 si no se está ejecutando ningún guión. QUE SON LOS METODOS: Quit( ): Cierra la aplicación. Tenga en cuenta que si los clientes siguen vinculados, la aplicación se oculta hasta que todos los clientes liberan el servidor de automatización de FileMaker Pro. Para evitar un comportamiento inesperado, incluya siempre una cláusula Quit con una cláusula de liberación del objeto. Por ejemplo: FMproApp.Quit Set FMProApp = Nothing QUE SON LOS DOCUMENTOS: Es el conjunto de todos los documentos abiertos, o archivos de FileMaker Pro. QUE SON LAS PROPIEDADES: Nota Todas las propiedades son de sólo lectura. - Application: Devuelve un puntero al objeto Application. - Parent: Devuelve un puntero al objeto Application. - Recuento: Devuelve el número de documentos (entero largo) en el conjunto Document.

_NewEnum: Devuelve un objeto enumerador que recorra todos los objetos Document en el conjunto Document. No es una propiedad explìcita del objeto, pero se puede acceder implìcitamente a ella cuando use el documento en un bucle For. - Active: Devuelve el documento activo. - Item(variant): Devuelve un objeto Document especìfico desde el conjunto. Este método es el miembro predeterminado del conjunto Documents. Toma un parámetro variante que se puede especificar por: • (nombre • •

Una cadena que representa el nombre de archivo del documento de ruta completo). Un ìndice (entero largo) en el conjunto Documents. NULL (que devuelve todo el conjunto).

QUE SON LOS METODOS: Open(filename As String, accountName As String, password As String): Abre un archivo de FileMaker Pro, crea un objeto Document y devuelve un puntero al objeto Document. Close( ): Cierra todos los documentos del conjunto y los elimina de este conjunto. La cláusula Document Close produce un cierre duro del documento. Si otros usuarios están conectados a la base de datos de FileMaker Pro cuando la aplicación recibe una cláusula Document Close, se desconectarán inmediatamente y sin advertencia de ningún tipo. Asegúrese de que los usuarios conectados tengan la oportunidad de salir de FileMaker Pro antes de enviar este comando. Objeto Application Es un objeto que contiene valores y opciones de toda la aplicación, métodos que devuelven objetos de nivel superior (activecell, activesheet,etc.); es decir, representa la aplicación completa Microsoft Excel. Ejemplos: 

Aplicar la propiedad Windows al objeto Application.

Application.Windows("book1.xls").Activate



Crear un objeto libro de Microsoft Excel en otra aplicación y, luego, se abrirá un libro en Microsoft Excel.

Set xl = CreateObject("Excel.Sheet") xl.Application.Workbooks.Open "newbook.xls"



Se pueden emplearse sin el calificador de objeto Application

ActiveCell.Font.Bold = True & Pero también se puede escribirlo así: Application.ActiveCell.Font.Bold = True Objeto Windows Es un objeto que contiene todos los objetos Windows de Microsoft Excel; se diferencia del Windows del objeto Workbook porque este únicamente contiene las ventanas del libro especificado. Ejemplos: 

Organizar en cascada todas las ventanas que se muestran actualmente en Microsoft Excel.

Windows.Arrange arrangeStyle: = xlCascada



Crear una ventana nueva y agregarla a la colección.

ActiveWorkbook.NewWindow



Maximizar la ventana activa usando Windows(índice). Tener en cuenta que la ventana activa siempre es Windows(1).

Windows(1).WindowState = xlMaximized

Objetos WorkBooks Este objeto que colecciona todos los objetos Workbook que estén abiertos actualmente en la aplicación Microsoft Excel. Un Workbook (objeto) representa un libro de Microsoft Excel abierto, con los siguientes métodos.

a) Activate : Activa un libro b) Close :Cierra el libro con la posibilidad de indicar si deben guardarse los cambios. c) Protect/Unprotect : Permite proteger un libro, de forma que los usuarios no puedan agregar ni eliminar hojas de cálculo, y volverlo a desproteger. d) Save : Guarda el libro. Si el libro no se ha guardado antes, Excel lo guarda en la carpeta actual e) SaveAs : Permite guardar el libro especificado, indicando a título opcional un nombre, un formato de archivo, una contraseña f) SaveCopyAs :Guarda una copia del libro en un archivo, pero no modifica el libro abierto en memoria. Este método es útil cuando se desea crear una copia de seguridad sin modificar la ubicación del libro. EJEMPLO Por ejemplo, puede utilizar el código siguiente para hacer referencia a la colección de libros cargados actualmente en Microsoft Excel: [Object].Application.Workbooks

si desea recuperar un único libro de la colección, utilice el método Item. Por ejemplo, para hacer referencia a del primer libro: [Object].Application.Workbooks.Item(1)

para cerrar el primer libro: [Object].Application.Workbooks.Item(1).Close

Acceso a objetos referencia normales o las propiedades predeterminadas Cada libro contiene una colección de hojas de cálculo, cada hoja de cálculo contiene una colección de celdas y así sucesivamente. (Consulte la documentación de Microsoft Excel y Ayuda de menú para obtener detalles específicos acerca de la jerarquía de objetos de Microsoft Excel). En el código, las referencias a una celda específica podrían este aspecto: ' Following refers to cell A1 on Sheet1 in the first workbook. ' Enter the following two lines as one, single line: [Object].Application.Workbooks.Item(1). WorkSheets.Item("Sheet1").Cells.Item(1,1)

esta referencia puede ser larga y compleja; sin embargo, accesos directos están disponibles. Comprender el operador de desplazamiento (.) es fundamental para la programación de objeto correcta.

EJEMPLO De esta manera podemos declarar objeto Workbook: Declaración Public Class Workbook Inherits BindableComponent Implements IActivatable, ISupportInitializeControl, ISupportInitialize 'Uso Dim instance As Workbook Ejemplo: 

Activar el libro uno; Workbooks (índice)

Hay que tener en claro que el índice va a ser el nombre o número del libro, es decir que el número de índice representa el orden en que se abrieron o crearon los libros y de esta manera se obtiene un solo objeto Workbook. Workbooks(1).Activate 

Activar el último libro que se creó; Workbooks (Workbooks.Count)

Workbooks(Workbooks.Count) 

Devolver el nombre del libro activo; en el que se activa Sheet1 del libro denominado Cogs.xls que está abierto en Microsoft Excel.

Workbooks("Cogs.xls").Worksheets("Sheet1").Activate 

Devolver el libro activo (ActiveWorkbook), en el que se establece el nombre del autor del libro activo.

ActiveWorkbook.Author = "SAMANTA LUSCHI" 

Cerrar todos los libros abiertos

Workbooks.Close 

Crear un nuevo libro vacío y agregarlo a la colección

Workbooks.Add 

Abrir un archivo, en el que se crea un libro nuevo para el archivo abierto

Workbooks.Open FileName: = "Array.xls", ReadOnly: = True

ThisWorkBook Devuelve un objeto Workbook que representa el libro en el que se está ejecutando el código de la macro activa. Sólo lectura. Sintaxis expresión.ThisWorkbook expresión Variable que representa un objeto Application.

Métodos del objeto Workbook de Excel a) Activate : Activa un libro b) Close :Cierra el libro con la posibilidad de indicar si deben guardarse los cambios. c) Protect Unprotect :Permite proteger un libro, de forma que los usuarios no puedan agregar ni eliminar hojas de cálculo, y volverlo a desproteger. d) Save :Guarda el libro. Si el libro no se ha guardado antes, Excel lo guarda en la carpeta actual e) SaveAs :Permite guardar el libro especificado, indicando a título opcional un nombre, un formato de archivo, una contraseña f) SaveCopyAs :Guarda una copia del libro en un archivo, pero no modifica el libro abierto en memoria. Este método es útil cuando se desea crear una copia de seguridad sin modificar la ubicación del libro.

La propiedad ThisWorkbook devuelve el libro donde se está ejecutando el código de Visual Basic; en el mayor de los casos este coincide con el libro activo. Pero si el código de Visual Basic forma parte de un complemento, la propiedad ThisWorkbook no devuelve el libro activo; en este caso, el libro activo es el libro que llama al complemento, por lo que la propiedad ThisWorkbook devolverá el libro del complemento. Para la creación de un complemento en el código de Visual Basic, es necesario utilizar la propiedad ThisWorkbook, que permite calificar cualquier instrucción que debe ejecutarse en el libro que se compile como complemento.

Ejemplo: Activar una hoja de diálogo almacenada en el libro de complemento. ThisWorkbook.DialogSheets(1).Show Cerrar el libro que contiene el código de ejemplo, no se guardan los cambios realizados en el libro. ThisWorkbook.Close SaveChanges: = False Comentarios Utilice esta propiedad para hacer referencia al libro que contiene el código de la macro. ThisWorkbook La propiedad ActiveWorkbook no devuelve el libro de complemento; devuelve el libro que llama al complemento. La propiedad Workbooks puede fallar, puesto que probablemente se cambiara el nombre del libro cuando se creó el complemento. ThisWorkbook siempre devuelve el libro en el que se está ejecutando el código. Por ejemplo, use el código siguiente para activar una hoja de diálogo almacenada en el libro de complemento. ThisWorkbook.DialogSheets(1).Show

Esta propiedad sólo puede utilizarse desde dentro de Microsoft Excel. No podrá usar la propiedad para obtener acceso a un libro desde otra aplicación. El objeto Workbook es un miembro de la colección Workbooks. La colección Workbooks contiene todos los objetos Workbook abiertos actualmente en Microsoft Excel. Propiedad ThisWorkbook La propiedad ThisWorkbook devuelve el libro donde se ejecuta el código de Visual Basic. En la mayoría de los casos, coincide con el libro activo. No obstante, si el código de Visual Basic forma parte de un complemento, la propiedad ThisWorkbook no devolverá el libro activo. En este caso, el libro activo es el libro que llama al complemento, mientras la propiedad ThisWorkbook devuelve el libro del complemento.

Si desea crear un complemento a partir del código de Visual Basic, debe usar la propiedad ThisWorkbook para calificar cualquier instrucción que deba ejecutarse en el libro que se compile como complemento. El objeto Microsoft.Office.Interop.Excel.Workbook representa un solo libro en la aplicación Excel Ejemplo Use Workbooks(índice), donde índice es el nombre o número de índice del libro, para obtener un solo objeto Workbook. En el siguiente ejemplo se activa el libro uno. Visual Basic para aplicaciones Workbooks(1).Activate Hoja de Cálculo y objeto hoja de cálculo Un libro es lo mismo que un archivo de Excel. La colección libro contiene todos los libros que están abiertos actualmente. En el interior de un libro contiene al menos una hoja de cálculo. En VBA, una hoja de cálculo se puede hacer referencia como sigue:

Sheets ¿QUE ES SHEETS? Una hoja cue, cue sheet o archivo.cue, es un archivo Unicode que especifica cómo se distribuyen las pistas de datos . Las hojas cue comúnmente tienen la extensión ".cue". Originalmente usados por el programa VISUAL VASIC para PROGRAMAR, pero actualmente usados por muchos programas audiovisuales y de grabación de CDs como Nero. Es un objeto que colecciona todas las hojas del libro especificado o activo; esta colección puede tener objetos Chart o Worksheet, ya que es muy útil cuando se quiere obtener hojas de cualquier tipo. Ejemplo Use la propiedad Sheets para obtener la colección Sheets. En el siguiente ejemplo se imprimen todas las hojas del libro activo. Visual Basic para aplicaciones Sheets.PrintOut Ejemplo:



Imprimir todas las hojas del libro activo

Sheets.PrintOut



Crear una nueva hoja y agregarla a la colección.

Sheets.Add type: = xlChart, count: = 1, after: = Sheets(1)



Activar la hoja “LOVE”, Sheets(índice); el índice es el nombre o número de índice de la hoja.

Sheets("LOVE").Activate



Especificar varias hojas; Sheets(matriz); las hojas denominadas "LOVE" y " FRIENDSHIP" al principio del libro.

Sheets(Array("LOVE", "FRIENDSHIP")).Move before: = Sheets(1) Esta palabra tiene varias definiciones: DEFINICIONES 'Declaración Public Overridable ReadOnly Property Sheets As Sheets 'Uso Dim instance As Workbook Dim value As Sheets value = instance.Sheets Title - El Nombre de la Grabación (Ejemplo. Live at the Bassment) Performer - Artista o DJ Filename - El nombre del archivo específico que contiene el cue sheet al que hace referencia el archivo (ejemplo liveset.mp3) Track - El nombre de la pista de audio

Track Times - el comienzo de la pista, expresado en el formato MM:SS:FR (minutossegundos-frames) Ejemplo: 04:18:63 = minuto 4, 18 segundos, 63 frames

WorkSheets Colección de todos los objetos Worksheet del libro especificado o activo. Cada objeto Worksheet representa una hoja de cálculo. Hace referencia a las hojas de trabajo (hojas de un libro excel) Es un objeto que colecciona todos los objetos Worksheet del libro activo, donde cada objeto Worksheet representa una hoja de cálculo. Devuelve un objeto gráfico que representa el gráfico activo (ya sea un gráfico incrustado o una hoja de gráfico). Un gráfico incrustado se considera activo cuando está seleccionado o activado. Cuando no hay un gráfico está activo, esta propiedad devuelve nada. De sólo lectura. Ejemplo En este ejemplo se convierte en la leyenda del gráfico activo. ActiveChart.HasLegend = True El siguiente procedimiento Sub se utiliza la función de hoja de cálculo mínima para determinar el valor más pequeño en un rango de celdas. En primer lugar, la MyRange variable se declara como un objeto Range y, a continuación se configura en rango A1: C10 de Sheet1. Otra variable, respuesta, se asigna el resultado de aplicar la función Mín para MyRange. Por último, el valor de la respuesta se muestra en un cuadro de mensaje. Sub UseFunction() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:C10") answer = Application.WorksheetFunction.Min(myRange) MsgBox answer

End Sub Si utiliza una función de hoja de cálculo que requiere una referencia de rango como un argumento, debe especificar un objeto Range. Por ejemplo, puede utilizar la función de hoja de partido para buscar un rango de celdas. En una celda de hoja de cálculo, debería introducir una fórmula como = COINCIDIR (9, A1: A10, 0). Sin embargo, en un procedimiento de Visual Basic, debe especificar un rango de objetos para obtener el mismo resultado.

Sub FindFirst() myVar = Application.WorksheetFunction _ .Match(9, Worksheets(1).Range("A1:A10"), 0) MsgBox myVar

End Sub Tenga en cuenta las funciones de Visual Basic no utiliza el calificador WorksheetFunction. Una función puede tener el mismo nombre que una función de Microsoft Excel y, sin embargo trabajan de manera diferente. Por ejemplo, Application.WorksheetFunction.Log y Registro se devuelven valores diferentes. Inserción de una función de hoja en una celda Para insertar una función de hoja de cálculo en una celda, se debe especificar la función como el valor de la propiedad Formula del correspondiente objeto Range. En el siguiente ejemplo, la función de hoja de RAND (que genera un número aleatorio) se asigna a la propiedad Formula del rango A1: B3 en Sheet1 del libro activo. InsertFormula Sub () Worksheets ("Sheet1"). Range ("A1: B3"). Formula = "= RAND ()"

End Sub Ejemplo Este ejemplo se utiliza la función de hoja de Pmt para calcular una hipoteca de una casa de pago de préstamos. Observe que este ejemplo se utiliza el método InputBox lugar de la función InputBox para que el método puede llevar a cabo la comprobación de tipos. Las declaraciones estática causa de Visual Basic para conservar los valores de las tres variables, las cuales se muestran como valores predeterminados la próxima vez que ejecute el programa. Static loanAmt Static loanInt Static loanTerm loanAmt = Application.InputBox _ (Prompt:="Loan amount (100,000 for example)", _ Default:=loanAmt, Type:=1)

loanInt = Application.InputBox _ (Prompt:="Annual interest rate (8.75 for example)", _ Default:=loanInt, Type:=1)

loanTerm = Application.InputBox _ (Prompt:="Term in years (30 for example)", _

Default:=loanTerm, Type:=1)

payment = Application.WorksheetFunction _ .Pmt(loanInt / 1200, loanTerm * 12, loanAmt)

MsgBox "Monthly payment is " & Format(payment, "Currency") Ejemplo: 

Mover todas las hojas de cálculo al final del libro

Worksheets.Move After: = Sheets(Sheets.Count)



Crear una nueva hoja de cálculo y agregarla a la colección; agregando 2 nuevas hojas de cálculo antes de la hoja uno del libro activo.

Worksheets.Add Count: = 2, Before: = Sheets(1)



Ocultar la hoja de cálculo uno del libro activo

Worksheets(1).Visible = False Comentarios El objeto Worksheet también es un miembro de la colección Sheets. La colección Sheets contiene todas las hojas del libro (hojas de gráficos y hojas de cálculo). Ejemplo Use la propiedad Worksheets para obtener la colección Worksheets. En el siguiente ejemplo se mueven todas las hojas de cálculo al final del libro.

Worksheets.Move After:=Sheets(Sheets.Count)

Use el método Add para crear una nueva hoja de cálculo y agregarla a la colección. En el siguiente ejemplo se agregan dos nuevas hojas de cálculo antes de la hoja uno del libro activo.

Worksheets.Add Count:=2, Before:=Sheets(1) EJEMPLO

EXTRUCTURACION CON CODIGO REAL Private Sub BOTON_Click() dato = InputBox("Ingrese Cèdula a buscar.....", "BUSCAR CEDULA") i = 6 While Worksheets("aquivalapaginadondevaaguardar(hoja1)").Cells(i, 1).Value "" If Trim(Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 1).Value) = dato Then Userform1.txtcodigoci = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 1).Value Userform1.txtnombresre = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 2).Value Userform1.txtapellidosre = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 3).Value Userform1.txtemailre = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 4).Value Userform1.txtceluer = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 5).Value Userform1.cbxtipor = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 6).Value Userform1.cbxdiar = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 7).Value Userform1.cbxmesr = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 8).Value Userform1.cbxañor = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 9).Value Userform1.cbxdiasr = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 10).Value Userform1.cbxmessr = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 11).Value Userform1.cbxañosr = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 12).Value Userform1.txttiempoestadia = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 13).Value Userform1.txtcde = Worksheets("aquivalapaginadondevaaguardar(hoja1").Cells(i, 14).Value encontrado = True End If i es la variable y pa va aposicionar en la pagina

Charts ¿QUE ES EL CHARTS EN VISUL BASIC? Visual Chart se encarga de informarnos en tiempo real de toda información financiera y, al cerrar la bolsa, nos informa del fin de día. Todo ello con todo tipo de detalle e informes. Toda la información que nos puede brindar lo hace de manera muy sencilla, con únicos clicks, para permitirnos centrarnos en lo que nos interesa y no en la manera de recoger todos los datos. Para estar conectado al 100% disponemos de un chat y de más de cien indicadores prediseñados (con opción de hacerlo nosotros mismos). El sistema de trading es sencillo y potente en cuanto al cálculo.

La colección Charts contiene un objeto Chart para cada hoja de gráficos de un libro. ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ..................................................................................................................... Ejemplo: 

Devuelve un solo objeto chart, Charts(índice); el índice es el nombre o número de índice de la hoja de gráficos, que representa la posición de la hoja de gráficos en la barra de fichas del libro.

Charts(1).SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbRed



Mover el gráfico llamado Ventas al final del libro activo.

Charts("VENTAS").Move after: = Sheets(Sheets.Count) Este artículo INTERPRETA una introducción a cómo utilizar el componente Chart en un formulario de Visual Basic para visualizar datos relacionados. Más concretamente, el código en este artículo muestra por ejemplo cómo hacer lo siguiente: • Usar datos de matriz para un gráfico. • Utilice un objeto recordset de ADO para datos del gráfico. • Usar datos de la hoja de cálculo para un gráfico. • Crear múltiples gráficos en un único espacio de gráfico. • Crear un gráfico de combinación. -y• Dar formato a los componentes de gráfico diferente, como ejes, datalabels, serie, plotareas y más.

ChartObject Es un objeto de colección que contiene todos los gráficos incrustados en una hoja individual. Las propiedades y métodos de este objeto controlan el aspecto y el tamaño del gráfico incrustado en la hoja. EJEMPLO: Set oChart = Charts.Add With oChart .ApplyCustomType ChartType:=xlBuiltIn, TypeName:= _ "Line - Column on 2 Axes" .SetSourceData Source:=Sheet1.Range( _ "D1:E3"), PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:="Sheet2" End With

'at this point the Chart Object has become a ChartObject Object With ActiveSheet

Set oChartObj = .ChartObjects(.ChartObjects.Count) End With With oChartObj.Chart .HasTitle = True .ChartTitle.Characters.Text = "My Title" .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "My Pri Axis"

End With Ejemplo: Establecer el diseño del área del gráfico incrustado 1 de la hoja de cálculo llamada "SEGURIDAD". Worksheets("SEGURIDAD").ChartObjects(1).Chart. ChartArea.Format.Fill.Pattern = msoPatternLightDownwardDiagonal Colocar bordes redondeados alrededor del gráfico llamado "DARK" en la hoja de cálculo "PRODUCCION". Worksheets("PRODUCCION").ChartObjects("DARK").RoundedCorners = True Eliminar todos los gráficos de la hoja de cálculo llamada "SIZE." Worksheets("SIZE").ChartObjects.Delete

Worksheets ("Sheet1") Worksheets ("Sheet1") es la hoja de cálculo que denomina "Sheet1". Otra manera de referirse a una hoja de cálculo es utilizar los números índice como el siguiente: Hojas de trabajo (1) Lo anterior se refiere a la primera hoja de la colección. 

Tenga en cuenta que hojas de cálculo (1) no es necesaria la misma hoja que Worksheets ("Sheet1").

Hojas es una colección de hojas de cálculo y hojas de gráficos (si existe). Una hoja puede ser indexado al igual que una hoja de cálculo. Sheets (1) es la primera hoja del libro. Para hacer referencia hojas (u otros objetos) con el mismo nombre, usted tiene que calificar el objeto. Por ejemplo: Workbooks ("Libro1"). Worksheets ("Sheet1") Cuadernos de trabajo ("Book2"). Worksheets ("Sheet1") Si el objeto no está calificado, el activo o el objeto actual (por ejemplo, libro u hoja de cálculo) se utiliza. La ficha de hoja en el boton de la hoja de cálculo (hoja de cálculo) muestra que la hoja está activa. Como muestra la siguiente figura, la hoja activa es "Sheet1" (mostrar en negrita y fondo blanco).

Crear una hoja de gráfico vacía e inserta antes de la última hoja. ActiveWorkbook.Charts.Add Before: = Worksheets(Worksheets.Count)

Shapes Devuelve un objeto ShapeRange que representa un subconjunto de formas de la colección Shapes. Sintaxis expresión.Range(Index) expresión Variable que representa un objeto Shapes.

Parámetros

Nombre Obligatorio/Opcional Tipo de dato Descripción Index Obligatorio Variant Formas individuales que se incluirán en el rango. Puede ser un número entero que especifique el número de índice de la forma, una cadena que especifique el nombre de la forma o una matriz que contenga tanto números enteros como cadenas. Comentarios Aunque se puede usar la propiedad Range para devolver cualquier número de formas, es más sencillo usar el método Item si sólo se desea obtener un único miembro de la colección. Por ejemplo, Shapes(1) es más sencillo que Shapes.Range(1). Para especificar una matriz de números enteros o cadenas para Index, puede usar la función Array. Por ejemplo, la siguiente instrucción devuelve dos formas especificadas por nombre. Dim arShapes() As Variant Dim objRange As Object arShapes = Array("Oval 4", "Rectangle 5") Set objRange = ActiveSheet.Shapes.Range(arShapes) En Microsoft Excel no puede usarse esta propiedad para devolver un objeto ShapeRange que contenga todos los objetos Shape de una hoja de cálculo. En su lugar, use el siguiente código: Worksheets(1).Shapes.SelectAll ' selecciona todas las formas set sr = Selection.ShapeRange ' crea un ShapeRange Ejemplo En este ejemplo se establece la trama de relleno de las formas uno y tres de myDocument. Visual Basic para aplicaciones Set myDocument = Worksheets(1) myDocument.Shapes.Range(Array(1, 3)) _ .Fill.Patterned msoPatternHorizontalBrick

En este ejemplo se establece la trama de relleno de las formas denominadas "Oval 4" y "Rectangle 5" de myDocument. Visual Basic para aplicaciones Dim arShapes() As Variant Dim objRange As Object Set myDocument = Worksheets(1) arShapes = Array("Oval 4", "Rectangle 5") Set objRange = myDocument.Shapes.Range(arShapes) objRange.Fill.Patterned msoPatternHorizontalBrick

Proporciona una manera fácil de graficar rectangulos,circulos y otras formas en un formulario. este contro es ligero lo que significa que no tiene un identificador de windows. Cada objeto Shape representa un objeto de la capa de dibujo, como una autoforma, una forma libre, un objeto OLE o una imagen. La colección ShapeRange, representa un rango de formas, que es un conjunto de formas de un documento. Shape es un control gráfico que se muestra como un rectángulo, un cuadrado, una elipse, un círculo, un rectángulo redondeado o un cuadrado redondeado. Utilice controles Shape en tiempo de diseño en lugar o además de invocar los métodos Circle y Line en tiempo de ejecución. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor. (Esto quiere decir que un control Shape nunca le servirá, por ejemplo, para albergar varios OptionButton y pretender que sean independientes de otros controles OptionButton que se encuentren fuera del control Shape. Usar el objeto Shape para: 

Devolver las formas adjuntas a los finales de un conector



Devolver una forma libre recién creada



Devolver una única forma de un grupo



Devolver un grupo de formas recién creado



Devolver una forma existente



Devolver una forma de la selección



Devolver las formas adjuntas a los finales de un conector

Ejemplo Use la propiedad Shapes para devolver la colección Shapes. En el siguiente ejemplo se seleccionan todas las formas de myDocument. Nota Si desea hacer algo (como eliminar o establecer una propiedad) con todas las formas de una hoja al mismo tiempo, selecciónelas todas y use la propiedad ShapeRange en la selección para crear un objeto ShapeRange que contenga todas las formas de la hoja. A continuación, aplique la propiedad o método correspondientes al objeto ShapeRange.

Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll

Use Shapes(índice), donde índice es el nombre o número de índice de la forma, para obtener un solo objeto Shape. En el siguiente ejemplo se establece como relleno una sombra predefinida para la forma uno de myDocument.

Set myDocument = Worksheets(1) myDocument.Shapes(1).Fill.PresetGradient _ msoGradientHorizontal, 1, msoGradientBrass

Use Shapes.Range(índice), donde índice es el nombre o el número de índice de la forma o una matriz de nombres o números de índice de formas, para devolver una colección ShapeRange que represente un subconjunto de la colección Shapes. En el siguiente ejemplo se configura la trama del relleno de las formas uno y tres de myDocument.

Set myDocument = Worksheets(1) myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _ msoPatternHorizontalBrick

Un control ActiveX de una hoja tiene dos nombres: el nombre de la forma que lo contiene, que aparece en el cuadro Nombre cuando se ve el control en la hoja de cálculo, y el nombre de código del control, que aparece en la celda situada a la derecha de la propiedad (Name) en la ventana Propiedades. La primera vez que agrega un control a una hoja, el nombre de la forma y el nombre de código son iguales. El nombre de código de un control se usa en los nombres de los procedimientos de eventos. Sin embargo, cuando se obtiene un control de la colección Shapes u OLEObjects de una hoja, para hacer referencia al control por nombre se debe emplear el nombre de la forma, no el nombre de código. Por ejemplo, suponga que agrega una casilla de verificación a una hoja y que tanto el nombre predeterminado de la forma como el de código son CheckBox1. Si después cambia el nombre de código del control escribiendo chkFinished junto a (Name) en la ventana Propiedades, debe usar chkFinished en los nombres de procedimiento de evento, pero tendrá que seguir usando CheckBox1 para obtener el control desde la colección Shapes u OLEObject, tal como se muestra en el ejemplo siguiente.

Private Sub chkFinished_Click() ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1 End Sub

Ejemplo: Sub ContarGraficos() MsgBox ActiveWorkbook.Worksheets(1).Shapes.Count End Sub === AddShape===

Añade una forma gráfica a la hoja de cálculo. Habrá que indicar el tipo de forma y sus características ejemplos: Sub AñadirRectangulo() ActiveWorkbook.Worksheets(“Hoja3”).Shapes.AddShape _ (msoShapeRectangle, 144,144,

72,72)

Dimensiones Posición en la hoja Tipo de forma End Sub El código siguiente muestra el dibujo de un rectángulo relleno en un formulario en tiempo de ejecución. En el ejemplo de Visual Basic para aplicaciones, se utiliza el control Shape. Private Sub Form_Load() ' Show a solid red rectangle 200 twips from the top left. Shape1.Top = 200 Shape1.Left = 200 Shape1.FillColor = vbRed Shape1.FillColor= vbFSSolid Shape1.BorderColor = vbRed

End Sub

Banco de Preguntas Pregunta 1

Cómo evitar los caracteres "raros" al añadir un cambio de línea en un TextBox Multiline Después de llenar las casillas con los datos (Autor, copyright, descripción, etc) las quiero mostrar utilizando un TextBox con la opción de Multiline y un Scroll Bar (por si acaso). Para hacer esto, voy acumulando en una variable (MetaTag) los resultados, y para colocar cada meta tag en líneas separadas se me había ocurrido utilizar chr$(13) al final de cada línea (sumandolo a la variable MetaTag) pero al mostrar el resultado aparecen unos caracteres (como unos cuadritos) en vez del "break". Respuesta: Es que no sólo debes añadirle al final el CHR$(13), sino el Chr$(10) también. Usa la constante vbCrLf que es la suma de un Chr$(13) & Chr$(10) Y así se cambiará a la siguiente línea. Ejemplo: ' sTmp = sTmp & "texto a añadir" & vbCrLf

Objetos ActiveCell algunos de los objetos que se encuentran en Excel son WorkSheet (Objeto hoja de cálculo) o Range (Objeto casilla o rango de casillas). Un objeto Range está definido por una clase donde se definen sus propiedades. Entre las propiedades de un objeto Range están Value , que contiene el valor de la casilla , Column y Row que contienen respectivamente la fila y la columna de la casilla, Font que contiene la fuente de los caracteres que muestra la casilla. Range , como objeto, también tiene métodos; Por ejemplo el método Activate , hace activa una celda determinada, Clear , borra el contenido de una celda o rango de celdas, Copy , copia el contenido de la celda o rango de celdas en el portapapeles. Range, es un elemento del Conjunto WorkSheets; dentro de un libro de trabajo puede existir más de una hoja ( WorkSheet ), todas las hojas de un libro de trabajo forman un conjunto, el conjunto WorkSheets . Cada elemento individual de un conjunto se referencia por un índice, de esta forma, la primera, segunda y tercera hoja de un libro de trabajo, se referenciarán por WorkSheets(1), WorkSheets(2) y WorkSheets(3). Page 2 2 Objetos de Objetos. Es muy habitual que una propiedad de un objeto sea otro objeto. Programación Orientada a Objetos "Devuelve un rango objeto que representa la celda activa en la ventana activa (la ventana en la parte superior) o en la ventana especificada. Ejemplo: En este ejemplo se utiliza un cuadro de mensaje para mostrar el valor de la celda activa.Dado que la propiedad ActiveCell un error si la hoja

activa no es una hoja de cálculo, el ejemplo Sheet1 activa antes de utilizar la propiedad ActiveCell. Worksheets("Sheet1").Activate MsgBox ActiveCell .Value

En este ejemplo se cambia el formato de fuente para la celda activa. Worksheets("Sheet1").Activate With ActiveCell .Font .Bold = True .Italic = True End With" El objeto Application contiene: Valores y opciones de toda la aplicación. Métodos que devuelven objetos de nivel superior, como ActiveCell, ActiveSheet, etc. ActiveCell.FormulaR1C1 nos permite escribir un valor en la celda activa. Range("A2").Select Otra vez indicamos que se traslade a la celda A2.

ActiveSheet Devuelve un objeto que representa la hoja activa (la hoja en primer plano) del libro activo o de la ventana o el libro especificado. Devuelve Nothing si no hay ninguna hoja activa. Hace referencia a una hoja activa Sintaxis 

expresión.ActiveSheet



expresión es la variable que representa un objeto Window.

EJEMPLO: NombreHoja = ActiveSheet.Name

Comentarios Si no se especifica un calificador de objeto, la propiedad devuelve la hoja activa del libro activo. Si un libro aparece en más de una ventana, es posible que la propiedad ActiveSheet tenga un valor diferente en cada ventana. Ejemplo

En este ejemplo se muestra el nombre de la hoja activa.

MsgBox "The name of the active sheet is " & ActiveSheet.Name

ActiveWorkBook Devuelve un objeto Workbook que representa el libro de la ventana activa (la ventana superior). Sólo lectura. Devuelve NothingNothing si no hay ventanas abiertas o si la ventana activa es la ventana de información o la del Portapapeles. Hace referencia a un Libro activo Sintaxis 

expresión.ActiveWorkbook



expresión es la variable que representa un objeto Application.

EJEMPLO: NombreLibro = ActiveWorkbook.Name Private Sub Command1_Click() Dim xls As Object Set xls = CreateObject("Excel.Application") xls.Visible = False xls.Workbooks.Open "c:\excelvb\source.xls" xls.Range("a1").Value = Text1.Text Text2.Text = xls.Range("a3").Value End Sub Private Sub Command2_Click() Archivo = App.Path & "\source.xls" Set xls = CreateObject("Excel.Application") xls.Workbooks.Open Archivo xls.Visible = False xls.Worksheets("Hoja1").Activate xls.Worksheets("Hoja1").Range("A1").Value = 666 xls.Worksheets("Hoja1").Range("A2").Value = 777 xls.Worksheets("Hoja1").Range("A3").Value = 888

'Para leer ' ValorCelda=pxls.Worksheets("Hoja1").Range("A3").Value xls.ActiveWorkbook.Close SaveChanges:=True End Sub

ActiveChart Workbook.ActiveChart (Propiedad) Obtiene un objeto Microsoft.Office.Interop.Excel.Chart que representa el gráfico activo (un gráfico incrustado o una hoja de gráficos). Un gráfico incrustado se considera activo cuando está seleccionado o activado. Cuando no hay ningún gráfico activo, esta propiedad devuelve referencia null (Nothing en Visual Basic). Espacio de nombres: Microsoft.Office.Tools.Excel Ensamblado: Microsoft.Office.Tools.Excel (en microsoft.office.tools.excel.dll) Sintaxis VB C# C++ F# JScript Copiar ' Declaración Public Overridable ReadOnly Property ActiveChart As Chart ' Uso Dim instance As Workbook Dim value As Chart value = instance.ActiveChart Valor de propiedad Objeto Microsoft.Office.Interop.Excel.Chart que representa el gráfico activo; referencia null (Nothing en Visual Basic) si no hay ningún gráfico activo. Ejemplo El ejemplo de código siguiente utiliza la propiedad ActiveChart para obtener el gráfico activo del libro actual y, a continuación, convierte en invisible el título del gráfico. VB C# C++ F# JScript Copiar Private Sub HideActiveChartTitle() If Not (Me.ActiveChart Is Nothing) Then Me.ActiveChart.HasTitle = False End If

End Sub

Banco de Preguntas

Pregunta 1 ¿CUÁL ES LA ESTRUCTURA PARA ACTIVECELL PARA EL NUMERO DE CEDULA EN LA CELDA B6? Range ("b6").Activate Activecell.FormulaR1C1 = txtcedula Pregunta 2 ¿CUAL ES EL RESULTADO DEL SIGUIENTE PROBLEMA? ActiveCell.Formula = "=" & ActiveCell.Formula & "+" & i Si la celda activa tiene una fórmula nos encontramos con que nuestra fórmula definitiva tiene dos signos "=" al principio, uno el que ya tenía y otro el que le hemos puesto nosotros. El resultado es que introducimos una fórmula incorrecta y Excel nos vuelve a dar un error. Pregunta 3 ¿CUÁL ES LA FUNCIÓN DE ACTIVESHEET? Hace refrencia a una hoja activa de un libro de Excel. Pregunta 4 ¿CUAL ES LA FUNCIÓN DEL OBJETO "SHEET"? Es un objeto que colecciona todas las hojas del libro especificado o activo; esta colección puede tener objetos Chart o Worksheet, ya que es muy útil cuando se quiere obtener hojas de cualquier tipo. Pregunta 5 ENUMERE 3 FUNCIONES DEL OBJETO "SHAPES" 

Devolver las formas adjuntas a los finales de un conecto.



Devolver una forma libre recién creada.



Devolver una única forma de un grupo.

Pregunta 6 ¿QUÉ MUESTRA LA VENTANA INMEDIATO? Permite comprobar los resultados de una línea de código de Visual Basic. Puede utilizar la ventana Inmediato para comprobar el valor de un control, campo o propiedad, para mostrar

el resultado de una expresión , o para asignar un nuevo valor a una variable , campo , columna , o la propiedad . Pregunta 7 ¿CUÁLES SON LOS COMPONENETES DEL EXAMINADOR DE OBJETOS? 

Cuadro Proyecto/Biblioteca: Muestra las bibliotecas que tienen establecida una referencia actualmente correspondientes al proyecto activo. Puede agregar bibliotecas en el cuadro de diálogo Referencias.



Cuadro Texto de búsqueda: Contiene la cadena que desea utilizar para la búsqueda. Puede escribirla o elegir la cadena que desee.



Botón Volver: Permite retroceder a la selección anterior de las listas Clases y Miembros de. Cada vez que hace clic, retrocede una selección hasta que haya pasado por todas las selecciones.



Botón Avanzar: Permite repetir las selecciones originales en las listas Clases y Miembros de cada vez que haga clic hasta que se agote la lista de selecciones.

Pregunta 8 ¿QUE ES EL CHART EN VISUAL BASIC ? Visual Chart se encarga de informarnos en tiempo real de toda información financiera y, al cerrar la bolsa, nos informa del fin de día. Todo ello con todo tipo de detalle e informes. Toda la información que nos puede brindar lo hace de manera muy sencilla, con únicos clicks, para permitirnos centrarnos en lo que nos interesa y no en la manera de recoger todos los datos. ¿QUÉ FUNCIÓN CUMPLE "ACTIVECHART"? Devuelve un objeto gráfico que representa el gráfico activo (ya sea un gráfico incrustado o una hoja de gráfico). Un gráfico incrustado se considera activo cuando está seleccionado o activado. Cuando no hay un gráfico está activo, esta propiedad devuelve nada. De sólo lectura. Pregunta 9 ¿CUÁL ES EL USO DE LA "VENTANA LOCALES"? Muestra automáticamente todas las variables declaradas del procedimiento actual y sus valores. Cuando está visible la ventana Locales, se actualiza automáticamente cada vez que hay un cambio desde Ejecutar en el Modo de interrupción.

Pregunta 10 ¿CUÁL ES LA FUNCIÓN DEL EXAMINADOR DE OBJETOS? El Examinador de objetos muestra en el panel Objetos las estructuras jerárquicas dentro del ámbito de exploración actual. Este puede expandir las estructuras del panel Objetos para poder de esta maneera ver listas ordenadas de sus miembros. Pregunta 11 ¿QUÉ NOS PERMITE EFECTUAR EL OBJETO:" ActiveCell.FormulaR1C1"? Nos permite escribir un valor en la celda activa.

Pregunta 12 ¿CUÁL ES LA FUNCIÓN DE "ActiveWorkBook"? Hace referencia a un Libro activo. Es importante que se escriba el nombre del libro en la línea de código tal cual consta en la barra de título de Excel y con la respectiva extensión de tipo de archivo (.xslm) ya que si los nombres no coinciden, no se ejecutará la sentencia. Pregunta 13 ¿Verifique y diga cual de las siguientes sentencias están incorrectas? a)Activar una hoja de diálogo almacenada en el libro de complemento. ThisWorkbook.DialogSheets(1).Show b)Cerrar el libro que contiene el código de ejemplo, no se guardan los cambios realizados en el libro. ThisWorkbook.Close SaveChanges: = True c)Mover el gráfico llamado Ventas al final del libro activo. Charts("VENTAS").Move after: = Sheets(Sheets.Count) d)Ocultar la hoja de cálculo uno del libro activo Worksheets(1).Visible = False

Respuesta: La opción b es única sentencia incorrecta porque tendría que estar False en vez de True.

= Pregunta 13 ¿QUÉ ES UN "OBJETO APPLICATION"? Es un objeto que contiene valores y opciones de toda la aplicación, métodos que devuelven objetos de nivel superior (activecell, activesheet,etc.); es decir, representa la aplicación completa Microsoft Excel.

Pregunta 14 Seleccione la respueta correcta? ¿Que permite el botón avanzar?

a.Retroceder a la selección anterior de las listas Clases y Miembros de. Cada vez que hace clic, retrocede una selección hasta que haya pasado por todas las selecciones. b.Repetir las selecciones originales en las listas Clases y Miembros de cada vez que haga clic hasta que se agote la lista de selecciones. c. todas las anteriores respuesta: b Pregunta 15 ¿Para crear una aplicación en VB que pasos se deben realizar? 1. Diseñando la Interface. Se crea una forma colocando sobre ella los controles u objetos necesarios, cambiandolos de lugar y/o de tamaño. Esta será la presentación de nuestra aplicación. 2. Dando valores a las propiedades de los objetos colocados en la forma y a la forma misma. 3. Escribir el código en los objetos para indicar que acciónes o eventos se deberán realizar cuando el usuario interaccione con estos objetos. Este paso es conocido como " Dar funcionalidad a la aplicación".

Objetos Range Range es el objeto central para la escritura del código de las Macros pues es el medio por el cual accedemos a las celdas de cada una de las hojas que componen el libro sobre el cual estamos trabajando, el objeto Range representa entre otros: -La selección actual. -Una celda en particular.

-Varios rangos de celdas (“Áreas”). -Toda una Columna ó Toda una fila. -El mismo rango en diferentes hojas (“Rangos 3D”). -Etc. El objeto rango tiene que ver con casi todo lo que hagamos en Excel, al fin de cuentas Excel es una hoja de cálculo y sus funcionalidades se centran la manipulación directa o indirecta de las celdas. Aqui tenemos algunos conceptos de los que debemos utilizar en los objetos range: Workbooks Libros de Trabajo en Excel Worksheets Hojas de Trabajo ActiveSheet Hoja Activa Worksheets.Count Ultima hoja de la coleccion Activate Activa la Hoja espedificada Range Rangos dentro de la hoja de Trabajo ActiveCell Se refiere a la celda activa Range ("a1").Value="NOMBRE Range ("a1:a3").count Referencias de estilo A1 utilizando el método Range. Referencia Significado Range("A1") Celda A1 Range("A1:B5") Celdas de la A1 a la B5

Range("C5:D9,G9:H16") Selección de varias áreas Range("A:A") Columna A Range("1:1") Fila uno Range("A:C") Columnas de la A a la C Range("1:5") Filas de la uno a la cinco Range("1:1,3:3,8:8") Filas uno, tres y ocho Range("A:A,C:C,F:F") Columnas A, C y F Si establece una variable de objeto para un objeto Range, puede manipular fácilmente el rango utilizando el nombre de la variable. El siguiente procedimiento crea la variable de objeto miRango y, a continuación, asigna la variable al rango A1:D5 de la Hoja1 del libro activo. Las instrucciones posteriores modifican las propiedades del rango, sustituyendo el nombre de la variable por el objeto del rango. Sub Aleatorio() Dim miRango As Range Set miRango = Worksheets("Hoja1").Range("A1:D5") miRango.Formula = "=ALEATORIO()" miRango.Font.Bold = True End Sub Range.- rangos dentro de una hoja de trabajo. Range "B3".- se refiere al rango indicado (de una dola celda) Range "C2:D3".- se refiere al rango indicado (de varias celda) Range "NombreRango".- se refiere al rango indicado por medio de un nombre El objeto Microsoft.Office.Interop.Excel.Range será el objeto más utilizado en las aplicaciones de Excel. Antes de poder manipular ningún área dentro de Excel, hay que expresarla en forma de objeto Range y trabajar con los métodos y propiedades de ese rango de celdas. Un objeto Range representa una celda, una fila, una columna, una selección de celdas que contiene uno o más bloques de celdas (que podrían ser contiguos o no), o incluso un grupo de celdas de varias hojas. Visual Studio Tools para Office introduce dos controles host de rangos: el control Microsoft.Office.Tools.Excel.NamedRange y el control.

Representa una celda, una fila, una columna, una selección de celdas que contienen uno o más bloques contiguos de celdas o un rango 3D, o incluso un grupo de celdas de varias hojas. ........................................................................................................................................ ....................................................................... Comentarios Representa una celda, una fila, una columna, una selección de celdas que contienen uno o más bloques contiguos de celdas o un rango 3D. En esta sección se describen los siguientes métodos y propiedades para devolver un objeto Range: a continuacion los siguientes metodos y propiedades son las que van a ver a continuacion... Propiedad Range Propiedad Cells Range y Cells Propiedad Offset Método Union

'EJEMPLO' Se utiliza el objeto Range: En el ejemplo siguiente se reemplaza el contenido completo de un documento con la palabra "Reemplazó" independientemente de la posición actual del punto de inserción. Sub RangeProperty() ' Range Example: ActiveDocument.Range.Text = "Replaced" End Sub

Ejemplo en este ejemplo vamos a usar range(arg) Use Range(arg), donde arg asigna un nombre al rango, para obtener un objeto Range que represente una sola celda o un rango de celdas. En el ejemplo siguiente se coloca el valor de la celda A1 en la celda A5.

Worksheets("Sheet1").Range("A5").Value = _ Worksheets("Sheet1").Range("A1").Value

En el ejemplo siguiente se rellena el rango A1:H8 con números aleatorios y se establece la fórmula de cada celda del rango. La propiedad Range, si se emplea sin un calificador de objeto (un objeto colocado a la izquierda del punto), devuelve un rango de la hoja activa. Si la hoja activa no es una hoja de cálculo, este método no se llevará a cabo con éxito. Use el método Activate para activar una hoja de cálculo antes de usar la propiedad Range sin un calificador de objeto explícito. Worksheets("Sheet1").Activate Range("A1:H8").Formula = "=Rand()"

'Range is on the active sheet

..................................................................... Muchos personas que recien estan conociendo lo que es visual basic para aplicaciones comienzan su carrera con las células.

Por ejemplo: Las células (1,1). Select es lo mismo que el Range ("A1"). Seleccionar y Las células (11,31). Select es la misma que Range ("AE11"). Selec t. Le recomendamos que utilice rango en lugar de las células para trabajar con células y grupos de células. Hace que tus frases mucho más clara y no se ven obligados a recordar que AE es la columna la columna 31.

..................................................................... La única vez que va a utilizar las células es cuando se desea seleccionar todas las celdas de una hoja de cálculo.

Por ejemplo: Cells.Select Para seleccionar todas las celdas y luego de vaciar todas las de los valores o las fórmulas que va a utilizar: Cells.ClearContents

células

Intervalo Para seleccionar una sola celda que va a escribir: Range ("A1"). Seleccionar Para seleccionar un conjunto de celdas contiguas que va a utilizar el colon y escribir: Range ("A1: G5"). Seleccionar Para seleccionar un conjunto de celdas contiguas no va a utilizar la coma y escribir: Range ("A1, A5, B4"). Seleccionar Para seleccionar un conjunto de celdas contiguas no y una gama que va a utilizar tanto los dos puntos y la coma: Range ("A1, A5, B4: B8"). Seleccionar

.......................................................................................................................................... Compensar La propiedad Offset es el que va a utilizar al máximo con la gama para desplazarse por la hoja. Para mover una celda hacia abajo (de B2 a B3): Range ("B2"). Offset (1,0). Seleccionar Para mover una celda a la derecha (de B2 a C2): Range ("B2"). Offset (0,1). Seleccionar

Para mover una celda hacia arriba (de B2 a B1): Range ("B2"). Offset (1,0). Seleccionar Para mover una celda a la izquierda (de B2 a A2): Range ("B2"). Offset (0, -1). Seleccionar

Para mover una celda hacia abajo de la celda seleccionada: ActiveCell.Offset (1,0). Seleccionar Como te habrás dado el primer argumento entre paréntesis para offset es el número de filas y el segundo es el número de columnas. Así que para pasar de A1 a G6 se necesita: Range ("A1"). Offset (5,6). Seleccionar Usted utiliza muy a menudo el siguiente fragmento de código. Se selecciona una celda y 4 más que el derecho a ser copiado y pegado en otra parte: Range (ActiveCell, ActiveCell.Offset (0,4)). Copiar Notificación de la coma después de la primera ActiveCell y el paréntesis de cierre antes de la doble Seleccionar.

.......................................................................................................................................... El objeto Microsoft.Office.Interop.Excel.Range será el objeto más utilizado en las aplicaciones de Excel. Antes de poder manipular ningún área dentro de Excel, hay que expresarla en forma de objeto Range y trabajar con los métodos y propiedades de ese rango de celdas. Un objeto Range representa una celda, una fila, una columna, una selección de celdas que contiene uno o más bloques de celdas (que podrían ser contiguos o no), o incluso un grupo de celdas de varias hojas. Range representa una celda, una fila, una columna, una selección de las células que contienen uno o más bloques contiguos de celdas o un rango de 3-D.

Uso del objeto RangeEn esta sección se describen las siguientes propiedades para devolver un objeto Range: Propiedad Range Propiedad Cells Propiedad Range

Utilice Range(arg), donde arg es el nombre del rango, para devolver un objeto Range que representa una sola celda o un rango de celdas. En el ejemplo siguiente se coloca el valor de la celda A1 en la celda A5. myChart.Application.DataSheet.Range("A5").Value = _ myChart.Application.DataSheet.Range("A1").Value

El siguiente ejemplo rellena el rango A1:H8 con el valor 20. myChart.Application.DataSheet.Range("A1:H8").Value = 20

'de las ayudas de oficce'

Cells Devuelve un objeto Range que representa las celdas del rango especificado. Use Cells (fila; columna), donde fila es el índice de fila y columna es el índice de columna, para devolver una sola celda. Sintaxis expresión.Cells expresión Variable que representa un objeto Range

Devuelve un objeto Range que representa las celdas del rango especificado, tal como se aplica al objeto Range. También devuelve un objeto Range que representa todas las celdas de la hoja de datos, no sólo las celdas actualmente en uso, tal como se aplica al objeto DataSheet. Objeto Range de sólo lectura.

Es una propiedad de Objetos Range, que devuelve las celdas del rango especificado, también devuelve todas las celdas de la hoja de datos, no sólo las celdas que se estén usando. Sintaxis expresión.Cells expresión, requerida, que devuelve un objeto de la lista aplicar a. Ejemplo: 

Borrar la fórmula de la celda B2 de la hoja de datos.

myChart.Application.DataSheet.Cells(2,2).ClearContents Encontrar última fila UltimaFila = _ Columns("A:A").Range("A35000").End(xlUp).Row Encontrar última fila

UltimaFila = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count Encontrar última fila MaxRow = Cells.SpecialCells(xlLastCell).Row MaxCol = Cells.SpecialCells(xlLastCell).Column Encontrar última fila (en columna especificada) Dim UltimaFila As Range If WorksheetFunction.CountA(Columns(1))> 0 Then

Set UltimaFila = Range("35000").End(xlUp) MsgBox UltimaFila.Address

End If Suprimir filas vacías intLastRow = Columns("A:A").Range("A35000").End(xlUp).Row For r = intLastRow To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete

Next Eliminar filas vacías Dim intNumDeFilas As Long Selection.SpecialCells(xlCellTypeLastCell).Select intNumDeFilas = Selection.Row For i = 1 To intNumDeFilas If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then Rows(i).Delete End If

Next Eliminar filas por condición Dim rngString As Range Do Set rngString = Cells.Find("Aglis", MatchCase:=False, _ LookAt:=xlPart, LookIn:=xlValues) If Not rngString Is Nothing Then rngString.EntireRow.Delete End If

Loop Until rngString Is Nothing Suprimir filas vacías por dos condiciónes X, Y For i = UltimaFila To 1 Step -1 Let strTest= Application.Cells(i, 2) If strTest "X" And strTest "Y" Then Rows(i).Delete

Next i

Columns Es una propiedad de Objetos Range, que devuelve las columnas de un rango especificado o todas las columnas de la hoja de datos.

Devuelve el número de la primera columna del primer área del rango especificado. Long de sólo lectura. Sintaxis 

expresión.Range



expresión, requerida, que devuelve un objeto de la lista aplicar a.

'delas ayudas de oficce'

Propiedad Columns Propiedad Columns tal como se aplica al objeto Application. Devuelve un objeto Range que representa todas las columnas de la hoja de cálculo activa. Si el documento activo no es una hoja de cálculo, esta propiedad fallará. Propiedad Columns tal como se aplica al objeto Range. Devuelve un objeto Range que representa las columnas del rango especificado. Propiedad Columns tal como se aplica al objeto WorkSheet. Devuelve un objeto Range que representa todas las columnas de la hoja de cálculo especificada. Ejemplo: 

Borrar la columna A de la hoja de datos.

myChart.Application.DataSheet.Columns(1).ClearContents La propiedad MultiColumn toma un valor booleano y la propiedad ColumnWidth toma un entero que especifica el ancho en píxeles. 'delas ayudas de oficce'

Rows Devuelve un objeto Range que representa todas las filas de la hoja de cálculo activa. Si el documento activo no es una hoja de cálculo, la propiedad Rows devuelve un error. Objeto Range de sólo lectura. Es una propiedad de Objetos Range, que devuelve las filas del rango especificado. • Utilice la propiedad Rows o Columns para trabajar con filas o columnas enteras. Estas propiedades devuelven un objeto Range que representa un rango de celdas. En el siguiente

ejemplo, Rows(1) devuelve la fila uno de la Hoja1. A continuación, la propiedad Bold del objeto Font del rango se establece en True. Sub FilaNegrita() Worksheets("Hoja1").Rows(1).Font.Bold = True End Sub • La siguiente tabla muestra algunas referencias de fila y columna, utilizando las propiedades Rows y Columns. Referencia SignificadoRows(1) Fila uno Rows Todas las filas de la hoja de cálculo Columns(1) Columna uno Columns("A") Columna uno Columns Todas las columnas de la hoja de cálculo Para insertar UNA sola fila recurrimos a Row. Sintaxis 

expresión.Rows



expresión, requerida, que devuelve un objeto de la lista aplicar a.

Dim i as integer, sA as string, sB as string sA = CStr(i+1) sB = CStr(i+3) sA = sA & ":" & sB Rows(sA).Select

................................................................................................................................................... .......... Ejemplo: 

Eliminar la fila tres de la hoja de datos.

myChart.Application.DataSheet.Rows(3).Delete Utilice la propiedad Rows o Columns para trabajar con filas o columnas enteras.

Sub FilaNegrita() Worksheets("Hoja1").Rows(1).Font.Bold = True End Sub La siguiente tabla muestra algunas referencias de fila y columna, utilizando las propiedades Rows y Columns. Referencia Significado Rows(1) Fila uno Rows Todas las filas de la hoja de cálculo Columns(1) Columna uno Columns("A") Columna uno Columns Todas las columnas de la hoja de cálculo Propiedad Rows Para un objeto Application, devuelve un objeto Range que representa todas las filas de la hoja de cálculo activa. Si el documento activo no es una hoja de cálculo, esta propiedad fallará. Para un objeto Range, devuelve un objeto Range que representa las filas del rango especificado. Para un objeto Worksheet, devuelve un objeto Range que representa todas las filas de la hoja de cálculo especificada. Por ejemplo, si el objeto Range tiene dos áreas, A1:B2 y C3:D4, Selection.Rows.Count devuelve 2, no 4. Si desea utilizar esta propiedad en un rango que puede contener una selección múltiple, compruebe Areas.Count para determinar si el rango es una selección múltiple. En ese caso, ejecute un bucle sobre cada área del rango , tal como se muestra en el ejemplo. Ejemplo En este ejemplo se elimina la fila tres de Sheet1.

Worksheets("Sheet1").Rows(3).Delete

En este ejemplo se eliminan las filas de la región actual de la hoja de cálculo uno en las que el valor de la celda uno de la fila es el mismo que el valor de la celda uno de la fila anterior. Visual Basic para aplicaciones For Each rw In Worksheets(1).Cells(1, 1).CurrentRegion.Rows this = rw.Cells(1, 1).Value If this = last Then rw.Delete last = this Next

En este ejemplo se muestra el número de filas de la selección de Sheet1. Si se ha seleccionado más de un área, el ejemplo ejecuta un bucle en cada área.

Worksheets("Sheet1").Activate areaCount = Selection.Areas.Count If areaCount 0 Then MsgBox "Name or range specified is not valid." End Sub

Sub Imprimir_seleccion() 'preparar la hoja para la impresión With ActiveSheet.PageSetup .PrintArea = "" .Orientation = xlPortrait 'xlLandscape .PaperSize = xlPaperA4 'formato A4 .BlackAndWhite = False 'incluir colores o no .FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho) .FitToPagesTall = 1 'reduce el tamaño de la hoja (alto) .CenterHorizontally = False 'centrar horizontalmente .CenterVertically = False 'centrar verticalmente

End With 'imprimir las celdas seleccionadas (1 copia) ActiveWindow.Selection.PrintOut copies:=1, collate:=True

End Sub Sub imprimaceldas() 'imprimir las celdas seleccionadas (1 copia) ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True End Sub El siguiente codigo imprime todas las hojas del libro Sub Imprimir() 'preparar la hoja para la impresión 'bucle que repasa todas las hojas For Each Worksheet In ActiveWorkbook.Sheets With ActiveSheet.PageSetup .PrintArea = "" .Orientation = xlPortrait 'xlLandscape .PaperSize = xlPaperA4 'formato A4 .BlackAndWhite = False 'incluir colores o no .FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho) .FitToPagesTall = 1 'reduce el tamaño de la hoja (alto) .CenterHorizontally = False 'centrar horizontalmente .CenterVertically = False 'centrar verticalmente End With

Next Worksheet 'fin del bucle 'imprimir las celdas seleccionadas (1 copia) ActiveWorkbook.PrintOut From:=1, To:=1, copies:=1, collate:=True End Sub Manejo de Columnas Encontrar última columna (buscar al revés) Sub findlastColum() Dim intUltimaCol As Integer If WorksheetFunction.CountA(Cells)> 0 Then intUltimaCol = Cells.Find(What:="*", After:=[A1], _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column MsgBox intUltimaCol

End If End Sub Encontrar última columna (en fila especificada) Sub EncontrarUltimaColumna() Dim intUltimaCol As Range If WorksheetFunction.CountA(Rows(1))> 0 Then

Set intUltimaCol = Range("IV1").End(xlToLeft) MsgBox intUltimaCol.Address End If End Sub

El siguiente codigo es para eliminar las columnas en un rango determinado Sub SuprimirColumnas() Dim cCount As Integer, c As Integer Dim DeleteRange as Range DeleteRange =("A1:B10") If DeleteRange Is Nothing Then Exit Sub 'Ejemplo: DeleteEmptyColumns Range("A1:Z1") If DeleteRange.Areas.Count> 1 Then Exit Sub With DeleteRange cCount = .Columns.Count For c = cCount To 1 Step -1 If Application.CountA(.Columns(c)) = 0 _ Then .Columns(c).EntireColumn.Delete

Next c End With End Sub

Selection Name Selection: devuelve el objeto seleccionado en la ventana activa para un objeto Application. Sintaxis 

expresión.Selection



expresión Variable que representa un objeto Window.

Comentario El tipo de objeto que se devuelve depende de la selección actual (por ejemplo, si está seleccionada una celda, la propiedad devuelve un objeto Range). Si no hay nada seleccionado, la propiedad Selection devuelve Nothing. El uso de esta propiedad sin un calificador de objeto equivale a usar Application.Selection.

Ejemplo:



Borrar la selección de EFECTIVO (la selección debe ser un rango de celdas).

Worksheets("EFECTIVO").Activate Selection.Clear



Mostrar el tipo de objeto de Visual Basic de la selección.

Worksheets("EFECTIVO").Activate MsgBox "The selection object type is " & TypeName(Selection) Name: Es una propiedad de Objetos Range, que especifica el nombre de un control u objeto, o el nombre de una fuente asociada al objeto Font. Sintaxis 

Objeto: Requerido. Un objeto válido.



String: Opcional. El nombre que desea asignar a la fuente o al control.



Para el objeto Font

Font.Name (= String) 

Para todos los demás controles y objetos

objeto.Name (= String) Ejemplo:



Muestra la propiedad Name de cada control de un formulario; utilizando la colección Controls para recorrer todos los controles colocados directamente en Userform.

Private Sub CommandButton1_Click( )

Dim MyControl As Control

For Each MyControl In Controls MsgBox "MyControl.Name = " & MyControl.Name Next

End Sub

FUNCIONES Una función es lo mismo que un procedimiento, con la única diferencia, de que la función devuelve un valor al procedimiento o función desde la que lo has llamado. Este valor es el resultado de aplicar la función. Para que la función realice su trabajo, le tienes que indicar con qué valores o elementos va a trabajar. Éstos son los argumentos o parámetros de la función. Sintaxis: Function nombre [(lista_argumentos)] [As tipo] End Function Llamar a una función de hoja de cálculo desde Visual Basic En Visual Basic, las funciones de hoja de calculo de Microsoft Excel pueden ejecutarse mediante el objeto WorksheetFunction. El siguiente procedimiento Sub usa la función Min para obtener el valor más pequeño de un rango de celdas. En primer lugar, se declara la variable myRange como un objeto Range y, a continuación, se establece como el rango A1:C10 de la hoja Sheet1. Otra variable, answer, se asigna al resultado de aplicar la función Min a myRange. Por último, el valor de respuesta se muestra en un cuadro de mensaje. Sub UseFunction() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:C10") answer = Application.WorksheetFunction.Min(myRange) MsgBox answer End Sub

Si usa una función de hoja de cálculo que requiere como argumento una referencia de rango, deberá especificar un objeto Range.Por ejemplo, puede usar la función de hoja de cálculo Coincidir para efectuar una búsqueda en un rango de celdas.En una celda de hoja de cálculo, podría insertar una fórmula como =COINCIDIR(9;A1:A10;0). No obstante, en un procedimiento de Visual Basic, para obtener el mismo resultado debe especificar un objeto Range

Sub FindFirst() myVar = Application.WorksheetFunction _ .Match(9, Worksheets(1).Range("A1:A10"), 0) MsgBox myVar End Sub

Las funciones en el entorno de Visual Basic son como los Procedimientos o subrutinas, es decir como el click de un boton o el doble click en un formulario, pero con la diferencia de que estas, devuelven un resultado y los procedimientos NO, el click de un boton puede mostrar el resultado de una cuenta en la pantalla, pero no puede usarse el procedimiento para agregarle (por ejemplo) un 2 y multiplicarlo por un 3, los botones y formularios y todos los Objetos NO PUEDEN OPERARSE, es decir no se los puede restar sumar, multiplicar o dividir o lo que se les ocurra. Para salvar esta imposibilidad, podemos crear nosotros mismos una funcion que por ejemplo agregue el IVA a un precio, y obviamente devuelva el resultado para poder ser usado en otras operaciones (cuentas o tomas de decisiones, ver TOMAS DE DECISIONES). Una funcion se escribe de una forma muy parecida a una Subrutina o procedimiento (como los clicks de los botones) pero cambia la Sintaxis o Declaracion pero es algo muy SUTIL... 

AQUI ALGUNAS FUNCIONES QUE PUEDEN SERVIR DE AYUDA:



Devuelve un tipo Variant (String) que contiene un número especificado de caracteres de una cadena.

La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el código que tengan en su interior, al final retornan un valor, y este valor luego lo podemos utilizar para una determinada tarea. En cambio los procedimientos, solo ejecutan el código que contienen y luego mueren por decirlo de alguna manera. 

Mid(string, start[, length])



EJEMPLO, Si queremos separar una cadena de caracteres:



nombre="MANUEL"



letra1=mid(nombre,1,1)



COMO RESULTADO EN LA VARIABLE letra1 TENDREMOS "M"



Y asi podemos seguir separando toda la cadena.



Dim MiCadena, PrimeraPalabra, UltimaPalabra, PalabraMedia

MiCadena = "Demostración función Mid" ' Crea la cadena de texto. PrimeraPalabra = Mid(MiCadena, 1, 12) ' Devuelve "Demostración". UltimaPalabra = Mid(MiCadena, 21, 3) ' Devuelve "Mid". PalabraMedia = Mid(MiCadena, 14) ' Devuelve "función Mid". Este segundo ejemplo utiliza MidB y una función definida por el usuario (MidMbcs) para devolver también caracteres de una cadena. La diferencia en este ejemplo es que la cadena de entrada es ANSI y la longitud en bytes. Function MidMbcs(ByVal str as String, start, length) MidMbcs = StrConv(MidB(StrConv(str, vbFromUnicode), start, length), vbUnicode) End Function Dim MiCadena MiCadena = "AbCdEfG" ' Donde "A", "C", "E", y "G" son DBCS y "b", "d", ' y "f" son SBCS. MiNuevaCadena = Mid(MiCadena, 3, 4) ' Devuelve ""CdEf" MiNuevaCadena = MidB(MiCadena, 3, 4) ' Devuelve ""bC" MiNuevaCadena = MidMbcs(MiCadena, 3, 4) ' Devuelve "bCd"



LEN



Devuelve un tipo Long que contiene el número de caracteres en una cadena o el número de bytes necesarios para almacenar una *variable.



Sintaxis



Len(cadena | nombrevar)



EJEMPLO.......... Len(nombre)-----> devuelve el numero de cararacteres de la cadena



Array (Función)



Devuelve una variante que contiene una matriz.



Sintaxis

Array(lista_argumentos) 

El argumento lista_argumentos requerido es una lista de valores delimitados por comas que se asignan a los elementos de la matriz contenida en el tipo Variant. Si no se especifica ningún argumento, se crea una matriz de longitud cero.



Dim A As Variant



A = Array(10,20,30)



B = A(2)



El límite inferior de una matriz creada mediante la función Array se determina por el límite inferior especificado con la *instrucción Option Base, a menos que Array esté autorizado con el nombre de la biblioteca tipo (por ejemplo VBA.Array). Si se *autoriza con el nombre de la biblioteca tipo, Array no se verá afectado por Option Base.



EJEMPLO: *Dim MiSemana, MiDía MiSemana = Array("Lun", "Mar", "Miér", "Jue", "Vie", "Sáb",

"Dom") ' Se da por hecho que el límite inferior es igual a 1 ' en los valores devueltos (mediante Opción Base) MiDía = MiSemana(2) ' MiDía contiene "Mar". MiDía = MiSemana(4) ' MiDía contiene "Jue".



InStrRev (1/dic/2010)

*Esta función se usa casi igual que la clásica InStr, pero sirve para buscar desde el final de la cadena. Como sabrás InStr devuelve la posición de una cadena dentro de otra: InStr("Que mas", "mas") daría un valor 6, lo que quiere decir que la posición de Mundo ocupa los caracteres desde la posición 6 dentro de Hola Mundo. En este ejemplo, InStrRev daría también 6, pero si se hace esto otro: InStrRev("Hola Ecuador", "o"), es decir saber cual es la posición de la última letra o, daría como resultado: 10; sin embargo: InStr("Hola Mundo", "o") daría 2, es decir la posición de la primera o. Los parámetros de InStr y los de InStrRev:

InStr([start, ]string1, string2[, compare])

InStrRev(string1, string2[, start[, compare]]) Si te fijas, verás que el parámetro opcional START ha cambiado de sitio, desde mi punto de vista es más lógico en la nueva función, pero como ya estamos acostumbrados... Como cambio, ahora en todas las funciones que usan el parámetro compare, el cual es opcional y si no se especifica se usa lo que se haya indicado en Option Compare xxx; pues lo que cambia es que antes no existía un valor para indicar que se usaba ese valor por defecto, simplemente no se indicaba, y ahora si se indica -1 (vbUseCompareOption) se usa el tipo de comparación a realizar en las cadenas.

Ya sabes que por defecto es como si estuviese Option Compare Binary, es decir que se diferencian las mayúsculas de las minúsculas. Si se especifica, (siempre a nivel de módulo y en cada módulo), Option Compare Text, no se diferencian las mayúsculas de las minúsculas. Pero esas definiciones se pueden pasar por alto, indicando el parámetro compare. StrReverse (1/Sep/98)

Esta función sirve para invertir el contenido de una cadena... es decir, darle la vuelta. Si se le pasa como parámetro "Hola", devolverá una cadena tal como esta: "aloH", es decir que casi aprende a hablar en francés... o al menos por teléfono... Para usarla: anedaCs= StrReverse("Hola Mundo") ' También valen variables de cadenas como argumento En la variable se asignará: "odnuM aloH" WeekDayName (1/nov/2010) Devuelve el nombre del día de la semana. La forma de usarla es: WeekdayName(weekday[, abbreviate][, firstdayofweek]) dónde: weekday: es un valor que indica el día de la semana, el valor dependerá del parámetro FirstDayOfWeek.

abbreviate: Opcional, si se devuelve el nombre completo o abreviado firstdayofweek: Opcional, para indicar cual es el primer día de la semana, por defecto en 1 (vbSunday), osea Domingo En este ejemplo se usa una función que devuelve un array y acepta como párametro si se devuelven los valores abreviados o no, por defecto es NO; el valor devuelto se puede asignar directamente a un array dinámico. Nota: Los nombres de los días de la semana, los devuelve en el idioma en que esté configurado Windows

' Private Function NombresDias(Optional ByVal Abbreviate As Boolean = False) As String() 'Devuelve un array con los nombres de los días de la semana Dim tArray() As String Dim i As Long

'Redimensionamos el array ReDim tArray(1 To 7) 'Bucle para cada día de la semana For i = 1 To 7 'Se inicia la semana en el Lunes tArray(i) = WeekdayName(i, Abbreviate, vbMonday) Next 'Devolver el array reción creado NombresDias = tArray() End Function MonthName (1/Feb/10) Devuelve el nombre del mes. La forma de usarla es: MonthName(month[, abbreviate]) dónde: month: es el número del mes, Enero es 1, Febrero 2, etc. abbreviate: Opcional, si se devuelve el nombre completo o abreviado En este ejemplo se usa una función que devuelve un array y acepta como párametro si se devuelven los valores abreviados o no, por defecto es NO; el valor devuelto se puede asignar directamente a un array dinámico. Nota: Los nombres de los meses, los devuelve en el idioma en que esté configurado Windows

' Private Function NombresMeses(Optional ByVal Abbreviate As Boolean = False) As String() 'Devuelve un array con los nombres de los meses Dim tArray() As String Dim i As Long 'Dimensionar un array para los doce meses ReDim tArray(1 To 12) 'Asignar los nombres de los meses For i = 1 To 12 tArray(i) = MonthName(i, Abbreviate) Next 'Devolver el array NombresMeses = tArray() End Function



Join (2/Ene/2008)

Esta función devuelve en una cadena el contenido de un array, cada elemento del array se incluye en esa cadena y se separa cada elemento con el separador indicado. El separador no se añade al final de la cadena, sólo entre cada elemento. La forma de usar esta función es:

Join(list[, delimiter]) dónde: list: es un array con los elementos que queremos "juntar" en una cadena. delimiter: (opcional), es el separador que queremos usar para separar cada uno de esos elementos, por defecto es un espacio. Si no queremos usar ningún delimitador, es decir para que todos los elementos estén juntos, hay que indicar una cadena vacía; si, por el contrario queremos usar cualquier otro carácter, lo indicaremos en este parámetro de la función. Veamos un ejemplo: ' Private Sub cmdJoin_Click() 'Ejemplo de uso de Join, esta función devolverá en una cadena 'cada elemento de un array separados por el delimitador que 'se le indique. Dim tArray() As String Dim i As Long 'Dimensionamos el array con cuatro elementos (de 0 a 3) ReDim tArray(3) 'Asignamos valores al array For i = 0 To 3 tArray(i) = "Elemento_" & i Next '=== Para hacer otras pruebas === 'Separa cada palabra con el caracter indicado 'Text1 = Join(tArray, "/") 'Todas las palabras juntas, sin usar separador 'Text1 = Join(tArray, "") 'Las palabras se separan por un espacio, (valor por defecto) Text1 = Join(tArray) End Sub Si no se indica delimitador: Text1 = Join(tArray), el contenido de Text1 será: Elemento_0 Elemento_1 Elemento_2 Elemento_3 Cada elemento se separa con un espacio. Si se especifica un caracter como delimitador: Text1 = Join(tArray, "/"), el contenido de Text1 será: Elemento_0/Elemento_1/Elemento_2/Elemento_3

Split (2/Oct/2009) Esta función es la inversa de Join, es decir, toma el contenido de una cadena y forma un array con cada una de las palabras, (o serie de palabras separadas por un delimitador dado, subcadena que la llaman). La forma de usar esta función es: Split(expression[, delimiter[, count[, compare]]]) dónde: expresion: es una cadena, o expresión que de como resultado una cadena, de la que queremos sacar los elementos.

delimiter: (opcional), es el separador que le indicará a la función como están separados los elementos; por defecto es un espacio. Si el delimitador es una cadena vacía, se devolverá un array con sólo un elemento conteniendo toda la cadena. count: (opcional), el número de elementos que se devolverá en el array, si no se indica o se usa -1, se devolverá cada subcadena en un elemento del array. Si este valor es menor que el número de subcadenas, en el último elemento del array se asignará el resto de la cadena. compare: (opcional), el tipo de comparación que se realizará para evaluar el delimitador dentro de la expresión. Private Sub cmdSplit_Click() 'Devolver una cadena con una serie de palabras de un array Dim tArray() As String Dim sTmp As String Dim i As Long 'Asignamos valores de prueba a una cadena sTmp = "Hola Mundo, esto es una prueba de Split en VB6" 'Creamos un array, cada "substring" se asignará 'a un elemento del array tArray = Split(sTmp) 'Ahora sólo crearemos un array de tres elementos 'tArray = Split(sTmp, , 3) 'También se puede usar para desglosar los parámetros 'de la línea de comandos 'fichero.txt /B /S/I tArray = Split(Command$, "/") 'Mostramos la información List2.Clear 'Si no conocemos los índices del array, 'usamos LBound y UBound para que nos lo indique For i = LBound(tArray) To UBound(tArray) List2.AddItem tArray(i) Next

End Sub Replace (3/Dic/88) Esta función devolverá una cadena en la que se han sustituido las "palabras" (subcadenas) indicadas por otras. (Se entenderá mejor al ver los parámetros y con el ejemplo) La forma de usar esta función es: Replace(expression, find, replacewith[, start[, count[, compare]]]) dónde: expression: Es la cadena original find: las subcadenas que queremos reemplazar replacewith: lo que se pondrá cuando se halle la cadena a reemplazar start: (opcional), posición dentro de expression a partir de la cual empezaremos a procesar la cadena

count: (opcional), número de sustituciones que queremos realizar, el valor por defecto es -1, lo que indica que se harán todas las sustituciones posibles.

compare: (opcional), lo dicho en las otras funciones, el tipo de comparación a realizar: binaria, de cadena o según el Option Compare xxx Pulsa este link para ver cómo "fabricarte" una función para hacer esto mismo... (más o menos) He publicado una nueva versión de las que ya estaban anteriormente publicadas. Vamos a ver un ejemplo de cómo usar esta función.

'En este ejemplo se sustituirán las "r" por "g" 'aunque también se podrían sustituir palabras completas o más de una letra, etc. Private Sub cmdReplace_Click() Dim sOriginal As String Dim sBuscar As String Dim sPoner As String 'Perdón a los que tenéis problemas con la ERRE, pero... sOriginal = "El perro de San Roque no tiene rabo porque Ramón Ramirez..." sBuscar = "r" sPoner = "g" Label1(2) = Replace(sOriginal, sBuscar, sPoner, , , vbTextCompare) End Sub El resultado de esta prueba sería: El peggo de San goque no tiene gabo pogque gamón gamigez... Se sustituyen todas las "r", incluso las mayúsculas, ya que se ha especificado vbTextCompare, es decir no tener en cuenta las mayúsculas de las minúsculas. Si se hubiese distinguido las mayúsculas de las minúsculas, cosa que ocurriría si no se hubiese indicado ese parámetro y en el módulo no se hubiese especificado Option Compare Text o bien si se hubiese indicado explícitamente vbBinaryCompare, la frasesita quedaría de esta forma: El peggo de San Roque no tiene gabo pogque Ramón Ramigez... Filter (3/Sep/98) Esta función devuelve un array que contiene los elementos de otro array, siempre que coincida con el criterio de búsqueda especificado. Ambos arrays deben ser del tipo String (cadena) La forma de usar esta función es: Filter(InputStrings, Value[, Include[, Compare]]) dónde: InputStrings: es un array unidimensional del tipo cadena Value: la cadena a buscar en InputStrings Include: (opcional) Si se quiere que los elementos devueltos sean los que incluyen la cadena indicada en Value o no, el valor por defecto es True, es decir, que se devuelvan las que incluyan esa cadena a buscar. Compare: (opcional), el tipo de comparación a realizar. Vamos a ver un ejemplo de cómo usar esta función.

' Private Sub cmdFilter_Click() 'Filtra un array con la cadena indicada y devuelve un array Dim tArray1() As String Dim tArray2() As String Dim i As Long Dim sFilter As String Dim bExclude As Boolean 'Llenar un list con datos de ejemplo y asignarlos a un array. 'En el form de prueba estos valores están asignados en 'el Form_Load, pero lo pongo para que se sepa lo que hay. With List3(0) '.Clear '.AddItem "Rodrigo Albuja" & vbTab & "Nerja" '.AddItem "Luchito" & vbTab & "Quito" '.AddItem "Juanito" & vbTab & "Máchala" '.AddItem "Manucato" & vbTab & "Santo Domingo" '.AddItem "Guille" & vbTab & "Guayaquil" '.AddItem "Pily" & vbTab & "Loja" ReDim tArray1(.ListCount - 1) For i = 0 To .ListCount - 1 tArray1(i) = .List(i) Next End With 'sFilter = "Guille" sFilter = Text5 'Incluir en tArray2 los elementos de tArray1 que tengan 'lo especificado en sFilter, sin distinguir mayúsculas de minúsculas 'If Check1.Value = vbChecked Then ' tArray2 = Filter(tArray1, sFilter, True, vbTextCompare) 'Else ' 'En esete caso se devuelven los elementos que no lo tengan ' tArray2 = Filter(tArray1, sFilter, False, vbTextCompare) 'End If 'También se puede hacer así: tArray2 = Filter(tArray1, sFilter, Check1.Value, vbTextCompare) 'Mostrar los elementos obtenidos With List3(1) .Clear For i = LBound(tArray2) To UBound(tArray2) .AddItem tArray2(i) Next End With End Sub

................................................................................................................................................... ............................................................

Insertar una función de hoja de cálculo en una celda Para insertar una función de hoja de cálculo en una celda, especifique la función como el valor de la propiedad Formula del objeto Range correspondiente. En el siguiente ejemplo, la función ALEATORIO (que genera un número aleatorio) se asigna a la propiedad Formula del rango A1:B3 de la Hoja1 del libro activo... Sub InsertFormula() Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()" End Sub

Ejemplo En este ejemplo se usa la función de hoja de cálculo Pago para calcular un pago de préstamo hipotecario. Tenga en cuenta que en el ejemplo se usa el método InputBox en lugar de la función InputBox, para que el método pueda comprobar el tipo.El enunciado Static hace que Visual Basic conserve los valores de las tres variables, que se mostrarán como valores predeterminados la próxima vez que se ejecute el programa... como podemos observar en el siguiente ejemplo: Static loanAmt Static loanInt Static loanTerm loanAmt = Application.InputBox _ (Prompt:="Loan amount (100,000 for example)", _ Default:=loanAmt, Type:=1) loanInt = Application.InputBox _ (Prompt:="Annual interest rate (8.75 for example)", _ Default:=loanInt, Type:=1) loanTerm = Application.InputBox _ (Prompt:="Term in years (30 for example)", _ Default:=loanTerm, Type:=1) payment = Application.WorksheetFunction _ .Pmt(loanInt / 1200, loanTerm * 12, loanAmt) MsgBox "Monthly payment is " & Format(payment, "Currency")

Banco de Preguntas Pregunta 1 ¿QUE HACE LA FUNCION CELLS? Es una propiedad de Objetos Range, que devuelve las celdas del rango especificado, también devuelve todas las celdas de la hoja de datos, no sólo las celdas que se estén usando. La funcion cell permite intruducir datos que se deseen organizar en una hoja de excel permitiendo que ingresen en la celda seleccionada.

Pregunta 2 Como se tiene que considerar a un Objeto Range:

1. Como una celda 2. Como una fila 3. Como una columna 4. Como una selección de celdas 5. Todas las anteriores Pregunta 3 ejemplo de instruccion Range

Sub Lectura1 Tit1=Range (“A1”) Tit2=Range (“B1” ) Nombre1=Range (“A2” ) Nombre2=Range (“A3”) Edad1=Range (“B2”) Edad2=Range (“B3”) End Sub

Pregunta 4 ¿Qué realiza la función Selection Name? y escriba su sintaxis: Selection: devuelve el objeto seleccionado en la ventana activa para un objeto Application. Sintaxis * expresión.Selection * expresión Variable que representa un objeto Window. * Selection es la función

Pregunta 5 Enumeres los métodos del objeto Workbook de Excel y comente cada uno de ellos. a) Activate : Activa un libro

b) Close :Cierra el libro con la posibilidad de indicar si deben guardarse los cambios. c) Protect/Unprotect :Permite proteger un libro, de forma que los usuarios no puedan agregar ni eliminar hojas de cálculo, y volverlo a desproteger. d) Save :Guarda el libro. Si el libro no se ha guardado antes, Excel lo guarda en la carpeta actual e) SaveAs :Permite guardar el libro especificado, indicando a título opcional un nombre, un formato de archivo, una contraseña f) SaveCopyAs :Guarda una copia del libro en un archivo, pero no modifica el libro abierto en memoria. Este método es útil cuando se desea crear una copia de seguridad sin modificar la ubicación del libro. Pregunta 6 ¿Explique que es un modulo estandar en Visual Basic? Los módulos estándar (extensión de nombre de archivo .bas) son contenedores de los procedimientos. Pueden contener declaraciones globales (disponibles para toda la aplicación) o a nivel de módulo de variables, constantes, tipos, procedimientos externos y procedimientos globales. El código que se escribe en un módulo estándar no está ligado necesariamente a una aplicación determinada; si tiene cuidado de no hacer referencia a controles o formularios por su nombre, puede reusar un módulo estándar en distintas aplicaciones.

UserForms ¿QUE ES USERFORMS EN VISUAl BASIC? Un UserForm que se puede utilizar en Visual Basic es mejor conocido como un Formulario que permitira que se ingresen datos por el teclado en un ambiente eminemtemente gráfico. Puede crear una interfaz amigable con el usuario de un libro o algun documento, lo que permite que la entrada de los datos sea mayormente controlable y mas fácil para las necesidades y requerimientos de el usuario. ¿QUE ES UN FORMULARIO DE USUARIO? Un formulario de usuario es un objeto que se presenta en la pantalla, como puede serlo una ventana emergente, un Inputbox, un Msgbox, etc. ¿CUAL ES SU FINALIIDAD?

Tiene como finalidad mostrar información. El usuario debe interactuar con ese formulario, normalmente pulsando algún botón, el de aceptar, rechazar, o cualquier otro que el programador haya incluido en el mismo. ¿COMO PODEMOS INCLUIR UN USERFORM? Debemos acceder al modo VBA (Alt+F11), y seleccionaremos en el menú Insertar la opción UserForm. Cunado ya hayamos incluido un userform para poder empazar a trabajar, podemos cambiarle el nombre al UserForm, porque por defecto nos habrá salido este nombre: UserForm1 siempre y cuando sea el primer UserForm que hemos creado en el libro. ¿COMO HACER PARA PODER CAMBIAR EL NOMBRE AL USERFORM? Para cambiar el nombre, seleccionaremos en Propiedades, la propiedad Name, y donde pone UserForm1, le pondremos el nombre que deseemos, pero si es un nombre compuesto, deberá ir sin espacioS. ¿QUE DEBEMOS HACER PARA INTRODUCIR TEXTO EN LA IMAGEN DEL USERFORM? Deberemos seleccionar el botón con la A mayúsculas llamado Etiqueta, y que figura en el Cuadro de herramientas. Para cambiar el tamaño de la letra mostrada en el UserForm, una vez introducido el texto, debemos seleccionar la propiedad Font, …desde ahí podemos cambiar el tipo de letra y el tamaño. Para introducir el botón al que le hemos puesto el texto de Aceptar, seleccionaremos en el Cuadro de herramientas el botón llamado Botón de comando. Desde las propiedades del botón, y con el botón seleccionado, elegiremos la propiedad Caption, y a la derecha, donde pone CommandButton1, pondremos Aceptar, o cualquier otro texto que deseemos. ¿COMO SABER SI NUESTRO USERFORM FUNCIONA? Ahora solo nos queda por ver como funciona el UserForm, para lo cual pulsaremos el botón que aparece debajo de las opciones de menú, llamado Ejecutar macro (el botón con la flecha azul). Además en la pantalla que nos aparece una vez que hemos creado nuestro UserForm, introduciremos el siguiente còdigo. Esto es para poder empezar a programar y asi nuestro UserForm este funcionando de la mejor manera: Private Sub CommandButton1_Click() 'Ocultamos el formulario. 'Si le hemos cambiado el nombre, en lugar 'de UserForm1, le pondremos el que tenga. UserForm1.Hide End Sub

¿QUE HACER PARA QUE NUESTRO FICHERO QUEDE GUARADADO? Para verlo funcionar, grabaremos el fichero, y lo cerraremos. Seguidamente abriremos de nuevo el fichero y nos aparecerá en pantalla el formulario (show). Si pulsamos sobre el botón de aceptar, se ocultará el UserForm (hide). Ademas debemos saber como que hacer para crear un userform: Crear un cuadro de diálogo personalizado : Utilice el siguiente procedimiento para crear un cuadro de diálogo personalizado: 1. Crear un UserForm En el menú Insertar del Editor de Visual Basic, haga clic en UserForm.

2. Agregar controles al UserForm Busque el control que desea agregar en la Caja de herramientas y arrástrelo al formulario.

3. Establecer las propiedades del control Con el botón secundario del mouse (ratón), haga clic en un control en modo de diseño y, a continuación, haga clic en Propiedades para mostrar la ventana Propiedades. 4. Inicializar los controles Puede iniciar los controles en un procedimiento antes de mostrar un formulario, o puede agregar código al evento Initialize del formulario. 5. Escribir procedimientos de eventos Todos los controles tiene un conjunto de eventos predefinidos. Por ejemplo, un botón de comando tiene un evento Click que se produce cuando el usuario hace clic en él. Puede escribir los procedimientos de eventos que se ejecutarán cuando se produzca el evento. 6. Mostrar el cuadro de diálogo Utilice el método Show para mostrar un UserForm. 7. Utilizar los valores del control cuando el código se está ejecutando Algunas propiedades pueden establecerse en tiempo de ejecución. Los cambios realizados por el usuario en el cuadro de diálogo se pierden cuando éste se cierra.

Presione Para Mayús+Ctrl+ALPHA Seleccionar una propiedad de la lista Propiedad de la ventana Propiedades. ALPHA Introducir un valor en la ventana Propiedades para la propiedad seleccionada. F7 Abrir la ventana Código para el objeto seleccionado. Supr Eliminar los controles seleccionados sin colocarlos en el Portapapeles. Ctrl+Z Deshacer una eliminación de controles. Tab Recorrer los controles hacia delante en el orden de tabulación. Mayús+Tab Recorrer los controles hacia atrás en el orden de tabulación. Ctrl+Clic Agregar o quita un control de la selección. Clic+arrastrar Seleccionar múltiples controles. Mayús+Clic Seleccionar múltiples controles. Ctrl+Clic+arrastrar Agregar o eliminar controles de la selección actual. F6 Mostrar la ventana Propiedades (sólo en tiempo de diseño). Mayús+F10 Ver método abreviado. Ctrl+J Traer al frente (afecta a controles superpuestos sólo en tiempo de diseño). Ctrl+K Enviar a atrás (afecta a controles superpuestos sólo en tiempo de diseño).

Para deseleccionar todos los controles, haga clic en el formulario. Para seleccionar controles en un contenedeor, primero deseleccione el contenedor y después Ctrl+Clic+arrastraralrededor de los controles deseados. Paso a paso para utilizar un "Cuadro de diálogo" : Hacer Click en el menú: Herramientas, Macro, Editor de Visual Basic. PASO A PASO PARA UTILIZAR USERFORM Hacer Click en el menú: Insertar, UserForm. Crear un grupo de controles en el formulario Cambiar el nombre a un grupo de controles en el formulario Cambiar nombre a cuadros de texto en el formulario Relacionar cuadros de texto con las celdas que contienen los datos Crear un botón para aumentar o disminuir números Asignar nombre al botón y relacionarlo con celdas Crear una barra de desplazamiento para la tasa de interés Asignar nombre a la barra de desplaz. para la tasa, y celda relacionada Crear las etiquetas para mostrar los resultados del cálculo Crear un botón de comando para el formulario

Asignar nombre y propiedades al botón de comando Detalles para mejorar el formulario Ir al editor de código que corresponde al formulario Editar el código de cada objeto del formulario Crear el código para mostrar el formulario Escribir el código para mostrar el formulario Crear un objeto en la hoja, y asignarle la macro Asignar el código para mostrar el formulario, a un objeto de la hoja Asignar el código para mostrar el formulario, a un objeto de la hoja Para poder comprender que son y para que sirven los USERFORM debemos conocer algunas CONSIDERACIONES GENERALES. Módulos de Formulario Cada formulario en su aplicación tiene un módulo de formulario asociado, estos son guardados con una extensión de archivo FRM y contienen: * Los valores de las propiedades para el formulario y sus controles. * Declaración de variables en el ámbito del formulario. * Procedimientos de evento y procedimientos generales en el ámbito del formulario.

Nota: Las descripciones gráficas de un formulario y los controles sobre el formulario son almacenados en formato binario en un archivo con extensión FRX. Módulos Estándar Los módulos estándar pueden contener código que es común a varios formularios en su aplicación. Este código es por omisión público, lo cual significa que fácilmente compartido con otros módulos de código, tales como un módulo de formulario. Estos módulos contienen declaraciones de procedimientos, tipos y variables. No pueden almacenar procedimientos de evento por que no contienen objetos. CONSIDERACIONES GENERALES

Una vez que hemos analizado en que consisten las macros y también visto los principales tipos de controles que pueden ser utilizados, ahora nos introduciremos en los userforms o formularios. En relación los userforms, los formularios son mucho más conocidos por todos, ya que normalmente tenemos que convivir con ellos cada vez que navegamos por la web o cada vez que tenemos que llenar alguna solicitud. Los formularios general son utilizados para capturar una serie de información del usuario que esta interactuando con dicho formulario. Simplificando un poco lo técnico, podríamos decir que un formulario es una colección de controles activex que permiten la recolección de información. En el caso de Excel, además podemos elaborar un formulario aprovechando sus celdas y las posibilidades de formato que podemos aplicarles a ellas. Por su parte, los userforms, de alguna forma podríamos decir que también son formularios sólo que mucho más avanzados o complejos, razón por lo cual nos ofrecen muchas más posibilidades de comportamiento, uso o explotación. Técnicamente, diremos que un objeto userform es una ventana o un cuadro de diálogo que conforma parte de la interfaz usuario de una aplicación. Al igual que los formularios, los userforms están formados por una colección de controles, más una combinación de código y datos. En esta sección explicaremos a través de ejemplos ambos conceptos. Advertimos de antemano, que dada la complejidad de la construcción de un userform, no profundizaremos en su codificación o programación, sino que sólo nos remitiremos a algunas de sus propiedades y a un ejemplo que nos ayudará a comprender su utilización. Los UserForms y los controles tiene un conjunto de eventos predefinidos. Por ejemplo, un botón de comando tiene un evento Click que se ejecuta cuando el usuario hace clic en él, y UserForms tiene un evento Initialize que se ejecuta cuando se carga el formulario. Para escribir un procedimiento de evento de control o de formulario, abra un módulo haciendo doble clic en el formulario o control y seleccione el evento del cuadro de lista emergente Procedimientos/Eventos. Por cada formulario hay un módulo de formulario relacionado que contiene su código. Cada módulo de formulario contiene procedimientos de evento: secciones de código donde se colocan las instrucciones que se ejecutarán como respuesta a eventos específicos. Por cada control de un formulario, existe el correspondiente conjunto de procedimientos de evento, en el módulo de formulario. Además de procedimientos de evento, los módulos de formulario pueden contener procedimientos generales. Como ya se definió, un evento es una acción reconocida por un formulario o control. Cada formulario y control de Visual Basic tiene un conjunto de eventos predefinidos. Si se produce uno de dichos eventos y el procedimiento de evento asociado tiene código, Visual Basic llama a ese código. A cada evento le corresponde una sección de código (o procedimiento de evento). Cuando se desea que un control responda a un evento, se debe escribir código en el procedimiento respectivo.

Ejemplo(Manual de Excel tutorial de excel ) Sub Auto_open() Load UserForm1 UserForm1.Show End Sub La magia esta en el procedimiento Auto_open() que permite ejecutar automáticamente lo que se encuentre dentro de el cuando abras un libro que contenga este código, en este ejemplo cuando se abre el libro se activa el formulario 1 que programe. Así que todo lo que agregues dentro de este procedimiento se ejecutara automáticamente cuando abras un libro. como agragar controles al User Form para aggregar un control nuevo a un formulario de usuario, utilice primero el objeto de diseñador del objeto VBComponent correspondiente. El objeto de diseñador permite manipular el diseño de un formulario de usuario. El objeto de diseñador contiene controles de una colección. Para agregar un nuevo control, debe agregarlo a la colección de controles. En el ejemplo siguiente se agrega un control de casilla de verificación a un UserForm recién creado y establece el nombre, título, posición y tamaño del control: EJEMPLO Sub Add_Control() ' Declare variables. Dim mynewform As Object Dim mycheckbox As Object ' Create a new UserForm. You can use this new VBComponent object ' to manipulate the UserForm Set mynewform = _ Application.VBE.ActiveVBProject.VBComponents.Add (vbext_ct_MSForm) ' Add a checkbox to the new UserForm. Set myCheckBox = mynewform.Designer.Controls.Add("Forms.CheckBox.1") ' With the new checkbox... With myCheckBox .Name = "Check1" .Caption = "Check here" .Left = 10 .Top = 10 .Height = 20 .Width = 60 End With End Sub

Otro ejemplo:

EJEMPLO NUMERO 1 Application.ScreenUpdating = False ...Lineas de instruccion... Application.ScreenUpdating = True Este codigo lo copias antes de iniciar tu procedimiento y al finalizar tu procedimiento dentro de tus eventos por ejemplo ele evento clic de un boton: private sub commandbutton_click()

Application.ScreenUpdating = False Lineas de instruccion.......... Application.ScreenUpdating = True end sub EJEMPLO NUMERO 2 Private Sub CommandButton1_Click() Application.ScreenUpdating = False If TextBox1 = "hola" Then Label1.Visible = False MsgBox ("bienvenido: pedro") UserForm2.Label2.Caption = "pedro perez" Load UserForm2 Unload UserForm1 UserForm2.Show End If If TextBox1 "hola" Then TextBox1 = "" Label1.Visible = True End If Application.ScreenUpdating = True End Sub Private Sub CommandButton2_Click() 'Botón de Cancelar Unload UserForm1 End

End Sub EJEMPLO NUMERO 4 Private Sub CommandButton1_Click() Application.ScreenUpdating = False ActiveWorkbook.Unprotect "VKF76KL" Sheets("MATRICULA").Visible = True Sheets("MATRICULA").Select ActiveSheet.Unprotect "DFR56HG" Range("A2").Select Range("A1:Z5000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Sheets("REGISTRO").Range("Q165:W166"), CopyToRange:=Range("AG1"), Unique:= _ False Range("AG2:AI43").Select Selection.Sort Key1:=Range("AH2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Range("AF2").Select Range("AG2:AI43").Select Selection.Sort Key1:=Range("AI2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Range("AF2").Select Range("AG2:AG43").Select Selection.Copy ActiveWindow.ScrollWorkbookTabs Position:=xlFirst ActiveWindow.ScrollWorkbookTabs Position:=xlFirst Sheets("REGISTRO").Select ActiveWindow.SmallScroll Down:=-63 Range("C4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ =False, Transpose:=False Range("D4").Select Sheets("MATRICULA").Select Application.CutCopyMode = False Range("AG1:BF1").Select Selection.EntireColumn.Delete Range("A5004").Select ActiveWindow.ScrollWorkbookTabs Position:=xlFirst ActiveSheet.Protect "DFR56HG", DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveSheet.EnableSelection = xlNoSelection Sheets("MATRICULA").Visible = False ActiveWorkbook.Protect "VKF76KL" Sheets("REGISTRO").Select Range("D4").Select Application.ScreenUpdating = True End Sub

ESCRIBIR PROCEDIMIENTOS DE EVENTOS DE CONTROL Y DE CUADRO DE DIALOGO: Después de agregar controles al cuadro de diálogo o documento, agregue los procedimientos de eventos para determinar cómo responderán los controles a las acciones del usuario. Los UserForms y los controles tiene un conjunto de eventos predefinidos. Por ejemplo, un botón de comando tiene un evento Click que se ejecuta cuando el usuario hace clic en él, y UserForms tiene un evento Initialize que se ejecuta cuando se carga el formulario. Para escribir un procedimiento de evento de control o de formulario, abra un módulo haciendo doble clic en el formulario o control y seleccione el evento del cuadro de lista emergente Procedimientos/Eventos. Qué es un cuadro de diálogo? : Un objeto UserForm es una ventana o cuadro de diálogo que conforma una parte de la interfaz de usuario de una aplicación. Los formularios de usuario tienen propiedades que determinan la apariencia, como posición, tamaño y color; y diversos aspectos de su comportamiento. Por cada formulario hay un módulo de formulario relacionado que contiene su código. Cada módulo de formulario contiene procedimientos de evento: secciones de código donde se colocan las instrucciones que se ejecutarán como respuesta a eventos específicos. Por cada control de un formulario, existe el correspondiente conjunto de procedimientos de evento, en el módulo de formulario. Además de procedimientos de evento, los módulos de formulario pueden contener procedimientos generales. Como ya se definió, un evento es una acción reconocida por un formulario o control. Cada formulario y control de Visual Basic tiene un conjunto de eventos predefinidos. Si se produce uno de dichos eventos y el procedimiento de evento asociado tiene código, Visual Basic llama a ese código. A cada evento le corresponde una sección de código (o procedimiento de evento). Cuando se desea que un control responda a un evento, se debe escribir código en el procedimiento respectivo. La Ventana de Código contiene: El Cuadro Lista de Objetos Muestra el nombre del objeto seleccionado. Haga clic en la flecha a la derecha del cuadro Objeto para mostrar una lista de todos los objetos asociados con el formulario. El Cuadro Lista de Eventos

Muestra todos los eventos reconocidos para el formulario o control mostrado en el cuadro Objeto. Cuando seleccionamos un evento, en la ventana de código se muestra el procedimiento de evento asociado con ese evento. La Barra de División Desde el menú Ventana puede ejecutar el comando Dividir para dividir la ventana de código en dos partes, cada una de las cuales se desplaza separadamente. Puede entonces ver diferentes partes de su código al mismo tiempo. La información que aparece en el cuadro Objeto y Procedimiento se refiere al código en la parte que tiene el enfoque. El mismo comando utilizado para dividir la ventana puede utilizarlo para cerrar una de sus partes o también lo puede hacer arrastrando la barra de división hacia la parte superior o inferior de la ventana. El Botón Ver Procedimiento Establece que en la ventana de código se edite un procedimiento a la vez. El Botón Ver Módulo Completo Establece que en la ventana de código se tenga acceso a todos los procedimientos, separados por una línea separadora uno de otro. Editando Código Use las características de edición de Visual Basic para que su código sea más fácil de leer. Sangría Use la sangría para diferenciar partes de su código, tales como estructuras repetitivas y condicionales. Para aplicar sangría a una sección de sentencias de un código use la tecla Tab o el comando Aplicar sangría del menú Edición. Se forma similar, Shift + Tab o el comando Anular sangría del menú Edición quitará una sangría a las líneas seleccionadas. Veamos el siguiente ejemplo:

Columns Devuelve un objeto Range que representa las columnas del rango especificado o todas las columnas de la hoja de datos. Objeto Range de sólo lectura. expresión.Range

expresión Requerida. Expresión que devuelve un objeto de la lista Aplicar a. Para obtener información sobre cómo devolver un solo elemento de un conjunto, vea Devolver un objeto de un conjunto.

Es una propiedad de Objetos Range, que devuelve el valor de las columnas del rango especificado o el valor de todas las columnas de la hoja de datos. Sintaxis 

expresión.Range



expresión, requerida, que devuelve un objeto de la lista aplicar a.

¿COMO SE DEBE AGREGAR COLUMNS? Para poder utilizar una columna en una consulta, deberá agregarla a la consulta. Puede agregar una columna para mostrarla en los resultados de la consulta, para utilizarla al ordenar, para realizar búsquedas en el contenido de la columna o para resumir su contenido. Puede decidir cuáles de las columnas que utiliza en la consulta se van a incluir en el panel Resultados cuando la consulta se ejecute. Nota: El uso de esta propiedad sin un calificador de objeto equivale a usar ActiveSheet.Columns. Para ver el tipo de datos de una columna en el Diseñador de consultas y vistas, seleccione la tabla o el objeto con valores de tabla en el panel Diagrama y, en la ventana Propiedades, haga clic en Lista de columnas. A continuación, haga clic en los puntos suspensivos (…) para abrir el cuadro de diálogo Lista de columnas. Siempre que utilice una columna en una consulta, también podrá utilizar una expresión formada por cualquier combinación de columnas, literales, operadores y funciones. ¿COMO CREAR UNA INDIVIDUAL COLUMN? •En el panel Diagrama, active la casilla de verificación situada junto a la columna que desea incluir. O bien •En el panel Criterios, vaya a la primera fila en blanco de la cuadrícula, haga clic en el campo de la columna Columna y seleccione un nombre de columna de la lista desplegable. ¿COMO CREAR COLUMNAS CORRESPONDIENTES A UNA TABLA?

•En el panel Diagrama, active la casilla de verificación situada junto a *(Todas las columnas). Se usa Column Además se debe realizar lo siguiente:

1.Compruebe que no hay ninguna línea de combinación seleccionada en el panel de operaciones de tablas. 2.Haga clic con el botón secundario en el espacio vacío de la ventana Diseño y elija Propiedades en el menú contextual. 3.En la ventana Propiedades, haga clic en Todas las columnas y elija Sí o No en la lista desplegable.

MACROS MACROS Introducción Las operaciones tradicionales que se pueden realizar en Excel para Windows las podemos automatizar, de manera que se mantenga un registro que las contenga y posteriormente hacer referencia a ellas para la simplificación de tareas. Excel es un programa muy potente, pero la mayoría de las personas lo maneja de una forma muy básica, Excel cuenta con un lenguaje de programación llamado Visual Basic, y permite hacer o resolver los problemas de forma más rapida y sencilla, este curso es de un nivel alto, pero es fácil de aprender ya que se manejaran términos sencillos. Una Macro son una serie de pasos que se almacenan y se pueden activar con alguna tecla de control y una letra, un boton o manualmente. Por ejemplo, si repetidamente se emplea una serie de pasos como: Cambiar el Tamaño de Fuente o Tamaño de la letra, poner Negrita, cambiar la Fuente o Tipo de letra y el Color de Fuente o Color de Letra, para no estar repitiendo estos pasos se pueden almacenar en una macro y se ejecutara la macro las veces que se desee. En resumen una macro consiste en una serie de comandos y funciones que se almacenan en un módulo de Microsoft Visual Basic y que puede ejecutarse siempre que sea necesario realizar la tarea. Para esto Excel para Windows cuenta con dos herramientas básicas: las macros y los módulos. En esta sección se revisarán las macros. Para explicar lo que es una macro, vamos a hacer una analogía entre un micrófono y una cinta con la computadora y la grabadora de macros. La grabadora de macros funciona de manera similar a una grabadora de cintas. Una graba lo que la persona dice, otra graba lo que el usuario hace. Grabar Macro Antes de grabar o escribir una macro hay que tener en cuenta los siguientes puntos: 1. Planifique los pasos y los comandos que desea que ejecute la macro 2. Si se comete algún error mientras se graba la macro, también se grabarán las correcciones que se realicen. 3. Cada vez que se grabe una macro, ésta se almacenará en un nuevo módulo adjunto a un libro. Al grabar una macro, Excel almacena información sobre cada paso dado cuando se ejecuta una serie de comandos. A continuación, se ejecuta la macro para que repita los comandos. Si se comete

algún error mientras se graba la macro, también se graban las correcciones que se realicen. Visual Basic almacena cada macro en un nuevo módulo adjunto a un libro. Para grabar una macro seleccione del menú Herramientas el comando Grabar macro y después del submenú Grabar nueva macro. Se debe asignar un Nombre de la macro junto con una Descripción, aunque Excel para Windows siempre asigna estos predeterminados. Almacenar en son los posibles lugares donde se puede alojar la macro que se está grabando, ya sea en Este libro, en un Nuevo libro o en el Libro de macros personal. En la opción Método Abreviado aparece que se activara con la tecla Control(CTRL) + la letra que usted indique, Ejemplo m . La macro se activara cuando este lista con la tecla Control + m Al presionar Aceptar la grabación se inicia. En este momento, todas las acciones que realice se estarán registrando por Excel para Windows. Para finalizar la grabación seleccione del menú Herramientas el comando Grabar macro y después del submenú Finalizar grabación, o presione el botón que aparece al estarse grabando una macro. Referencias relativas Las macros se pueden grabar ya sea con referencias absolutas o relativas. Para indicarlo, seleccione del menú Herramientas el comando Grabar macro y después del submenú Usar referencias relativas . A menos que esta opción esté desactivada, la Grabadora de macros usará referencias relativas, no absolutas, para las celdas de una hoja de cálculo. Boton de finalizar Grabación Boton de Referencias Relativas Ejecutar una macro Para entender la forma de ejecutar una macro podemos utilizar otra vez la analogía con la grabadora. Las voz que se reproduce en la grabadora se escucha en la bocina, y de la misma forma, la macro que se reproduce en la grabadora se ejecuta en Excel para Windows. La ejecución de la macro se puede hacer de distintas formas. Si tiene asignado una combinación de teclas de método abreviado con éstas se puede iniciar la ejecución. Se puede ejecutar una macro seleccionándola de una lista en el cuadro de diálogo Macro. Para que una macro se ejecute cada vez que haga clic en un botón determinado o presione una combinación de teclas específica, asigne la macro a un botón de la barra de herramientas, a un método abreviado de teclado o a un objeto gráfico de una hoja de cálculo. Otra forma de ejecutar una macro es utilizando del menú Herramientas el comando Macro. De las macros listadas, se selecciona la deseada y se presiona Ejecutar. También se puede ejecutar Paso a paso para revisar los procedimientos que va realizando. Además de estas opciones, se tienen otras más que se revisarán más adelante. Manipulación de Macros Tras grabar una macro, se puede ver el código de macro con el Editor de Visual Basic para corregir errores o modificar lo que hace la macro. Por ejemplo, si la macro de ajuste de texto también tiene que aplicar el formato de negrita al texto, se puede grabar otra macro para aplicar el formato de negrita a una celda y, a continuación, copiar las instrucciones de esa macro a la macro de ajuste de texto. El Editor de Visual Basic es un programa diseñado para que los usuarios principiantes puedan escribir y editar fácilmente código de macro, y proporciona mucha Ayuda en pantalla. No es preciso saber cómo se programa o se utiliza el lenguaje de Visual Basic para realizar cambios sencillos en las macros. El Editor de Visual Basic permite modificar macros, copiarlas de un módulo a otro, copiarlas entre diferentes libros, cambiar el nombre de los módulos que almacenan las macros o cambiar el nombre

de las macros. Con el comando Macro del menú Herramientas, la misma que se vio en el tema anterior, podemos realizar varias acciones más. Editar abre la macro o el módulo de Visual Basic para poder realizar ediciones del código que se generó. Si se grabó en el Libro de macros personal se tiene que utilizar el comando Mostrar del menú Ventana para aparecer el libro "Personal" que está oculto. También podemos Eliminar la macro o el procedimiento seleccionado. Con las Opciones se muestra la siguiente caja de diálogo: Estas opciones son las mismas que se especificaron cuando se grabó la macro. Seguridad de macros Excel incluye protecciones contra virus susceptibles de ser transmitidos por macros. Si se comparten macros con otros usuarios, se puede certificar esas macros con una firma digital de modo que los demás usuarios pueden comprobar que proceden de una fuente fidedigna. Al abrir un libro que contiene macros, se puede comprobar su origen antes de habilitarlas. Tipos de Macros Macros automáticas Existen varias macros previamente creadas para Excel para Windows. Están disponibles en el menú Herramientas opción Complementos. Al seleccionar esta opción aparece la siguiente caja de diálogo: Con esta opción se especifican las macros que están disponibles y listas para usarse al iniciarse Excel para Windows. Se pueden instalar o eliminar las macros automáticas que vienen con Excel para Windows, o las que se hayan creado. Aquí se muestran las Macros automáticas disponibles. Pueden seleccionarse o borrarse las casillas de verificación de las macros automáticas a fin de instalar o eliminar las mismas en Excel para Windows. Con el botón Examinar se muestra una caja de diálogo similar a la de Abrir archivo donde puede seleccionarse una macro automática para ser instalada en Excel para Windows. Además de la macros grabadas se pueden crear códigos completos de macro instrucciones que son una serie de instrucciones que permiten automatizar procesos Sencillos, Avanzados y/o Complejos. Otra utilidad de este tipo de macros es que permite, ajustar una macro (como las que se crearon en la sección anterior) a las necesidades del trabajo que se necesite realizar. Haciendo el trabajo de 5 a 8 veces más rápido el trabajo cotidiano e inclusive en algunas ocasiones más rápido. Algunos ejemplos de lo que podemos hacer con las macros son: • Procesos de captura de información. • Procesos de impresión. • De análisis de datos. • De manejo de base de datos. • Elaboración de reportes. • Simplificación de tareas. • Tareas que son repetitivas, que hay que realizar varias veces el mismo procedimiento. • Un sistema de información. • Sistemas administrativos. Están disponibles en el menú Herramientas opción Asistente. Macros de Excel Las macros se puede agrupar en dos categorías principalmente: Macros de funciones Macros de comandos Macros de funciones Si ejecuta frecuentemente una tarea en Microsoft Excel, puede automatizarla mediante una macro. Una macro consiste en una serie de comandos y funciones que se almacenan en un módulo de Visual Basic y que puede ejecutarse siempre que sea necesario ejecutar la tarea. Una macro se graba igual que se graba música en un casete. A continuación, se ejecuta la macro para que repita los comandos. Con el Editor de Visual Basic, se pueden modificar macros, copiar macros de un módulo en otro, copiar macros entre diferentes libros, cambiar de nombre a los módulos que almacenan las macros o cambiar de nombre a las macros. Macros de comandos La creación de estas macro funciones consiste en poner una serie de ARGUMENTOS, en las cuales podemos ir poniendo los datos que lleva una función normal de Excel para Windows y al final le indicamos que operaciones hacer con estos ARGUMENTOS y de esta manera se optimiza el uso de varias fórmulas para llegar a un resultado. Es decir la creación de una función simplifica el uso de varias fórmulas, dejándolas como una sola. Dentro de la codificación de macros de Excel para Windows se tiene dos grupos de códigos. Visual Basic Macros de Excel Macros desde Visual Basic Es

un lenguaje (Codificación), que se puede utilizar, como lenguaje común entre los diferentes programas que se tiene en el Microsoft Office, cabe mencionar que esta basado en un Lenguaje llamado Visual Basic, pero no tiene mucho que ver con él. La macros de Visual Basic están basadas en módulos, que por tal hecho se vuelven más complicadas, teniendo como ventaja que son compatibles dentro de varias aplicaciones, de esta manera se tendría un lenguaje común de macros entre varios programas, con lo cual se logra que se pierda menos tiempo en realizar una macro en alguno de estos programas. Por esta razón es que las macros de Visual Basic es visto en un curso en particular.

BUSCAR UNA CADENA DE TEXTO EN OTRA MAS LARGA Con el siguiente ejemplo se nos hara mas facil el entendimiento y comprension de algunos de los comandos utilizados para cadenas string(De Texto)tanto de su posicion como de su comparación. Para este ejemplo debemos crear un formulario que tenga dos textbox y dos botones:

- al textbox1 debemos aplicarle la propiedad muiltiline en true. - al textbox2 lo pondremos el nombre de txt_Buscar. la codificacion es la siguiente: Option Explicit Private m_Pos As Integer Sub buscar_cadena(ByVal Posicion As Integer) Dim p As Integer, Frase As String Frase = txt_Buscar

p = InStr(Posicion, Text1, Frase) If p > 0 Then m_Pos = p With Text1 .SelStart = m_Pos - 1 .SelLength = Len(Frase) .SetFocus End With

Else

MsgBox "No se encontró la frase", vbInformation Text1.SetFocus End If

End Sub Private Sub Command1_Click(). 'Busca a pratir de la primera pocición. Call buscar_cadena(1). End Sub Private Sub Command2_Click() 'Busca a partir del valor que tenga m_Pos Call buscar_cadena(m_Pos + 1) End Sub Private Sub Form_Load() Command1.Caption = "Buscar" Command2.Caption = "Buscar siguiente" Me.Caption = "Ejemplo de InStr " End Sub COMBOBOX ¿QUE ES? El control ComboBox de los formularios Windows Forms se utiliza para mostrar datos en un cuadro combinado desplegable. De forma predeterminada, el control ComboBox aparece en dos partes: la parte superior es un cuadro de texto que permite al usuario escribir un elemento de la lista. La segunda parte es un cuadro de lista que muestra una lista de elementos, de los cuales el usuario puede seleccionar uno.

TRABAJAR CON UN LIST Y COMBO BOX Empezaremos con como agregar información a un Combobox y un Listbox, primeramente deberás crear el siguiente formulario dentro de Visual Basic, recuerda desde Excel se utiliza la tecla ALT + F11 para entrar a Visual Basic, seguido del Menú Insertar y después Userform, bueno creo que ya lo sabes. Inserta Un Combobox y un Listbox y un Botón. Ahora que ya creaste la Interfaz vamos a programar el botón, veremos como se le puede agregar información por medio de código a estos dos controles. Da doble clic en el Botón y escribe las siguientes líneas dentro del procedimiento.

Private Sub CommandButton1_Click()

ComboBox1.AddItem "Juan Jose" ComboBox1.AddItem "Pedro de la Fuente" ComboBox1.AddItem "Salvador de la Luz" ListBox1.AddItem "Juan José" ListBox1.AddItem "Pedro de la Fuente" ListBox1.AddItem "Salvador de la Luz" End Sub Bueno vamos a analizar el significado de estas líneas: ComboBox1.AddItem "Juan José " La opción AddItem significa que vas a agregar un dato de texto, por lo tanto se entiende como vas a agregar a Juan José al Combobox1, por lo tanto yo puedo agregar los datos que quiera a un Combobox o un Listbox con la opción AddItem, entonces al presionar el botón aparecerán los datos que se encuentra escritos y podrás seleccionar cualquiera de ellos, recuerda que la información la vas a agregar según tus necesidades. Ahora si deseas agregar números a un Combobox o ListBox escribe el siguiente código en un botón: Private Sub CommandButton1_Click() For X=1 to 50 Listbox1.AddItem str(x) Next End Sub La Instrucción For-Next es un ciclo contador que te permite contar desde un numero hasta otro. Por ejemplo le digo que cuente desde el 1 hasta el 50 y lo que se encuentre dentro del ciclo For-Next se ejecutara el número de veces, la X es una variable numérica que guarda el valor, cada vez que el ciclo da una vuelta aumenta un numero, por lo tanto X va a valer desde 1 hasta 50, y la instrucción Str es para convertir el valor numérico de la X en valor de Texto, ya que la opción AddItem guarda solo texto, claro esta que también puede funcionar sin esta instrucción en algunos casos.

Por lo tanto el Listbox1 va a guardar los número del 1 al 50, sin necesidad de irlos poniendo de uno por uno, imagínatelo. Listbox1.AddItem "1" Listbox1.AddItem "2" Listbox1.AddItem "3" Bueno esto es para introducirle datos a un Listbox y Combobox, pero como puedo usar estos datos para enviarlos para una celda, en el siguiente ejemplo te lo explico: Da doble clic en el Listbox y escribe el siguiente código: Private Sub ListBox1_Click() Range("a9").Select ActiveCell.FormulaR1C1 = ListBox1 End Sub Así de de fácil cada vez que escojas un dato que se encuentre en un Listbox1 lo enviara a la celda a9, escribiéndolo ahí. Si lo deseas hacer lo puedes hacer en un Combobox, solo cambia Listbox1 por Combobox1 y se acabo. Ahora si deseas agregar los datos al Listbox o Combobox sin ningún botón que presionar escribe el siguiente código: Private Sub UserForm_Activate() ComboBox1.AddItem "Juan Jose" ComboBox1.AddItem "Pedro de la Fuente" ComboBox1.AddItem "Salvador de la Luz" ListBox1.AddItem "Juan José" ListBox1.AddItem "Pedro de la Fuente" ListBox1.AddItem "Salvador de la Luz End Sub

La Clave esta en el procedimiento UserForm_Activate() esto quiere decir que cuando se active el formulario cargara lo que tu le indiques, en este caso va a introducir los datos al Listbox1 y Combobox1 automáticamente, que te parece. Ahora si deseas tomar información de una celda y enviarla a un Combobox o Listbox escribe el siguiente código en un Botón: Private Sub CommandButton1_Click() Range("a9").Select Do While ActiveCell Empty ActiveCell.Offset(1, 0).Select ListBox1.AddItem ActiveCell

Loop End Sub

Fíjate bien, primeramente muevo el rango a la celda a9 porque ahí esta el inicio de mi información, después la línea Do While Activecell Empty significa Hazlo mientras la celda no se encuentre vacía, la siguiente línea que esActiveCell.Offset(1, 0).Select, significa Baja un Renglón, la siguiente línea ListBox1.AddItem ActiveCell, agrega la información de la celda al Listbox1 y la línea Loop es parte del ciclo Do While, siempre cierra el ciclo, como el For-Next. Por lo tanto todos los nombres que estén delante de a9 serán enviados al Listbox1 y cuando tope con la celda a15 que se encuentra vacía la condición del Do While parara la ejecución de su código. Esto funciona caminando

renglones hacia abajo, pero si deseas moverte hacia la derecha por columnas solo cambia la línea ActiveCell.Offset( 1, 0).Select por ActiveCell.Offset(0, 1).Select, quiere decir que se mueva por columna, no por renglón. ActiveCell.Offset(Renglón, Columna).Select Si cambias el 1 por otro numero se moverá el numero de veces que tu le indiques, por ejemplo si quiero bajar 10 renglones de un golpe: ActiveCell.Offset(10, 0).Select

Si quiero moverme 20 columnas a la derecha ActiveCell.Offset(0, 20).Select

Cambios de código para el control ComboBox En los ejemplos siguientes se muestran las diferencias que existen entre las técnicas de codificación de Visual Basic 6.0 El código se modifica para hacer que un control ComboBox sea de sólo lectura El código siguiente muestra cómo impedir que un usuario agregue nuevos elementos a un control ComboBox. Visual Basic 6.0

Combo1.Locked = True El código se modifica para seleccionar el último elemento agregado en un control ComboBox El código siguiente muestra cómo se establece la selección en un elemento que se ha agregado mediante programación a un control ComboBox. Visual Basic 6.0

Combo1.AddItem "This is a new item" Combo1.ListIndex = Combo1.NewIndex

control listbox El control ListBox permite añadir elementos en forma de lista y también poder seleccionar elementos de la misma para trabajar los datos. Este control permite seleccionar un elemento solo o varios de ellos, utilizando la propiedad Multiselect. La imagen de la izquierda muestra un ListBox en el que se selecciona un solo elemento y a la derecha se seleccionan varios:

Bibliografía http://msdn.microsoft.com/en-us/library/aa168344(office.10).aspx http://www.programatium.com/manuales/excel/8.htm http://www.zator.com/Cpp/E4_9_8.htm http://www.mailxmail.com/curso-sql/operadoreslogicos http://www.programacionfacil.com/visual_basic:select_case http://www.cidse.itcr.ac.cr/cursos-linea/NUMERICO/excel/VBAExcel-MNumericos.pdf http://es.wikipedia.org/wiki/Visual_Basic http://www.softonic.com/s/componentes-visualbasic http://www.softonic.com/s/componentes-visual-basic http://www.xltoday.net/vba_bucles_intro.asp http://msdn.microsoft.com/eses/library/21daexkw(VS.80).aspx autor: Santos Gonzales, Manuel titulo: Fundamentos de Programacion Obtenido de "http://wiki.soludevt.com/index.php? title=VISUAL_BASIC_PARA_APLICACIONES_EXCEL" Vistas



Página



Discusión



Ver código fuente



Historial

Herramientas personales



Registrarse/Entrar

Navegación



Página Principal



Portal de la comunidad



Actualidad



Cambios recientes



Página aleatoria



Ayuda

temas



VBA

Buscar

Especial:Search

Ir

Buscar

Herramientas



Lo que enlaza aquí



Cambios relacionados



Páginas especiales



Versión para imprimir



Enlace permanente



Esta página fue modificada por última vez el 02:31, 8 jul 2010.



Esta página ha sido visitada 5.408 veces.



Política de protección de datos



Acerca de Wiki Soludevt



Aviso legal