lunes, 31 de octubre de 2011

12. GESTIONAR LIBROS


INSTRUCCIONES
1. Cree un nuevo Libro y Modulo nuevo
2. Transcriba las macros y asigne un botón a cada una
ALTERNATIVA PARA CREAR NUEVO LIBRO Y GUARDARLO COMO XLSM

PROCEDIMIENTOS DE GESTIÓN DE LIBROS:

3. (opcional) Guarde como practico39.xlsm

11. MACROS DE EVENTOS


Crearemos una Macro de evento cuando se active el Libro activo
INSTRUCCIONES
1. En un nuevo Libro de Excel abra el editor VB y en Macros de Evento de Libro haga doble clic en ThisWorkbook, Cambie las Listas Desplegables (General) por Workbook y (Declaraciones) por Activate.
2. Transcriba el siguiente código faltante:
Private SubWorkbook_Activate()
   MsgBox "Se ha activado el Libro: " &ActiveWorkbook.Name  ‘muestra un cuadro de dialogo
End Sub

Crearemos otra Macro de Evento pero a la Hoja
INSTRUCCIONES
1. Macros de Hoja, haga doble clic sobre la Hoja1(Hoja1), cambie (General) por WorkSheet y SelectionChange por Activate
2. Transcriba el siguiente código faltante:
   MsgBox "Se ha activado la Hoja: " & ActiveSheet.Name  ‘muestra un cuadro de dialogo con el nombre de la hoja
3. (opcional) Guarde como practico7.xlsm

OTROS EVENTOS IMPORTANTES:
Private Sub Worksheet_Activate()
' El código que escribas aquí se ejecutará automáticamente al activar la hoja

Private Sub Worksheet_Calculate()
' El código que escribas aquí se ejecutará automáticamente al calcular la hoja

Private Sub Worksheet_Deactivate()
' El código que escribas aquí se ejecutará automáticamente al desactivar la hoja

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' El código que escribas aquí se ejecutará automáticamente al moverte entre las celdas de la hoja (cada vez que seleccionas y te posicionas en una nueva celda)

Private Sub Worksheet_Change(ByVal Target As Range)
' El código que escribas aquí se ejecutará automáticamente al producirse un cambio en la hoja (por ejemplo al introducir un dato en una celda, seleccionar una opción de una lista desplegable, etc.)

10. VARIABLES Y CONSTANTES


INSTRUCCIONES
1. Cree un nuevo Módulo y transcriba el siguiente código Visual Basic:


Donde:
Const c As String = “VBA”, define una constante (Const) c como(As) Cadena (String)
Sub mostrarTexto(), Sub crea un procedimiento mostrarTexto() nombre del proyecto note que es texto sin espacios termina en paréntesis ()
Dim txt As String, definición de la variable txt tipo Cadena (String)
txt = “mundo”, asignación de la cadena “mundo” a la variable txt
MsgBox prompt:=”hola ” & txt & ” ” & c, crea un ventana de dialogo con el texto “hola mundo”

TABLA DE TIPO DE DATOS (PARA DEFINIR LAS VARIABLES):
Tipo de datos
Tamaño
Intervalo
Byte
byte
0 a 255
Boolean
bytes
True o False
Integer
bytes
-32,768 a 32,767
Long (entero largo)
bytes
-2,147,483,648 a 2,147,483,647
Single (coma flotante/ precisión simple)
bytes
-3,402823E38 a -1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos
Double (coma flotante/ precisión doble)
bytes
-1.79769313486231E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos
Currency (entero a escala)
bytes
-922.337.203.685.477,5808 a 922.337.203.685.477,5807
Decimal
bytes
+/-79.228.162.514.264.337.593.543.950.335 sin punto decimal; +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal; el número más pequeño distinto de cero es +/-0,0000000000000000000000000001
Date
bytes
1 de enero de 100 a 31 de diciembre de 9999
Object
bytes
Referencia a tipo Object
String (longitud variable)
bytes + longitud de la cadena
0 a 2.000 millones
String (longitud fija)
longitud de la cadena
1 a 65.400 aproximadamente
Variant (con números)
bytes
valor numérico hasta el intervalo de un tipo Double
Variant (con caracteres)
bytes + longitud de la cadena
mismo intervalo que para un tipo String de longitud variable
Definido por el usuario  (utilizando Type)
número requerido por los elementos
Intervalo de cada elemento es el mismo que el intervalo de su tipo de datos.

9. PARÁMETROS


Los parámetros son usados para pasar datos en funciones y procedimientos. Generalmente forman el binomio nombreParametro:=Valor
INSTRUCCIONES
1. En la ventana Inmediato escriba la siguiente sentencia:
Msgbox prompt:=”Hola Mundo”
Donde:
Prompt, es un parámetro de Msgbox
:=”Hola Mundo”, es la asignación de la cadena “Hola Mundo”

8. OBJETOS, PROPIEDADES Y MÉTODOS


Visual Basic maneja conceptos como Objetos, Propiedades y Métodos:
Objeto.- Es una cosa física o abstracta, un libro Excel, una hoja, un rango, una celda, un gráfico, una tabla dinámica, un cuadro de diálogo, las etiquetas de hojas, las columnas, las filas, etc.
Propiedad.- Son las Características de los objetos, como ser: tamaño, color, seleccionado, activo, etc
Métodos.- Son las acciones que se pueden realizar en los objetos y sus propiedades, como ser: copiar, mover celdas u hojas.

Objeto (teléfono móvil), a su vez la pantalla es otro objeto con sus propios métodos y propiedades
Propiedades, color, tamaño, encendido, apagado
Métodos, llamar, contestar, ingresar nuevo número, enviar mensaje, etc
INSTRUCCIONES
1. Cree un nuevo modulo
2. Reemplace el código anterior por la siguiente Macro que escribe la palabra “hola” en la celda A1:


NOTA.- Observe la jerarquía de Clases, donde:
Workbooks(1), se refiere al Libro1
Sorksheets(1), se refiere a la Hoja1
Range(“A1”), se refiere a la Celda A1
Range(“A1”).value , se refiere a la propiedad del valor del objeto A1

7. SEPARADOR DE SENTENCIAS, COMENTARIOS, CONTINUAR SIGUIENTE LÍNEA


Los dos puntos (:) separan sentencias Ej: Dim a As String: Dim b As Integer
Los comentarios se crean anteponiendo una comilla simple (‘) Ej: ‘esto es un comentario
Cuando el código es demasiado largo usamos un espacio y el guion bajo (_) para continuar en la siguiente línea Ej:
Application.Calculation = _
xlCalculationAutomatic

6. MACROS MÁS RÁPIDAS


Para evitar que se observe en pantalla la ejecución de cada sentencia y el cálculo se realice a solicitud del usuario no automáticamente
Sub Macro1()
  Application.ScreenUpdating = False ‘desactivamos la vista sentencia a sentencia
  Application.Calculation = xlCalculationManual ‘activamos el cálculo manual y no automatico
  
  ‘escriba el código aqui
  
  Application.Calculation = xlCalculationAutomatic ‘reponemos el cálculo automático
  Application.ScreenUpdating = True ‘activamos la ejecución sentencia a sentencia
End Sub

5. CREAR MODULO VBA


INSTRUCCIONES
1. Clic en el Menú Insertar
2. Clic en Modulo
3. En área de trabajo (blanco) podemos escribir el código VBA

Otra forma es como se ve en el gráfico:

4. GRABACIÓN Y MODIFICACIÓN DE MACRO VBA


Las más importantes estructuras de programación VBA:
Procedimientos que ejecutan operaciones: Sub()
Funciones código que devuelven un resultado: Function()
Ejemplo.
Vamos a crear una macro grabada (que siempre es bueno para analizar y aprender código visual basic) donde escribiremos en la celda A1 el valor de 15000. Y luego reemplazaremos el código visual basic creado por la macro grabada con nuestro propio codigo.

INSTRUCCIONES
1. Grabe la Macro1 con las siguientes opciones:



2. Escriba 15000 en la celda A1 y presione ENTER
3. Detenga la Grabación de la Macro1 y Presione ALT+F11:
 4. Vera algo como esto:
5. Elimine y reemplace todo el código entre SubMacro1() y End Sub con:
Range("A1").Value = 15
6. Ejecute la Macro1 presionando F5
7. (opcional) Guarde como practico4.xlsm

lunes, 24 de octubre de 2011

3. VENTANA INMEDIATO – EJEMPLO


Realice los ejercicios note la jerarquía de objetos y propiedades
3.1 SENTENCIAS DE ASIGNACIÓN
EJERCICIO:
Vamos a escribir en la celda A1 “hola”
Pasos:
1. Escriba la línea:
2. Presione la tecla ENTER
3. Regrese a EXCEL (ALT+F11)

3.2 VALOR DEVUELTO POR LAS SENTENCIAS
Se antepone el signo de interrogación (?) para obtener el valor devuelto de la sentencia
Vamos a seleccionar la celda B1
Pasos:
1. Escriba la línea:
2. Presione la tecla ENTER
3. Regrese a EXCEL (ALT+F11)
Dónde:
Workbooks(1)=Libro1.xlsm
Worksheets(1)=Hoja1


VIDEO DEMOSTRATIVO:



2. CONFIGURACIÓN RECOMENDADA PARA VBA


2.1 ACTIVAR FICHA PROGRAMADOR
ARCHIVO/OPCIONES/PERSONALIZAR CINTA DE OPCIONES/PROGRAMADOR (ACTIVAR)
2.2 ACTIVAR DECLARACIÓN DE VARIABLES OBLIGATORIA
FICHA PROGRAMADOR/VISUAL BASIC/HERRAMIENTAS/OPCIONES/EDITOR/REQUERIR DECLARACIÓN DE VARIABLES
2.3 (OPCIONAL) REDUCIR TAMAÑO DE FUENTE DE LA VENTANA DE CÓDIGO
FICHA PROGRAMADOR/VISUAL BASIC/HERRAMIENTAS/OPCIONES/FORMATO DEL EDITOR/
FUENTE: Currier New(Occidental)
TAMAÑO: 8

1. ENTORNO DE DESARROLLO VBA (IDE)

Tienen las siguientes partes:

1) Ventana Explorador de Proyectos, muestra complementos (.xlam) y los proyectos ProyectVBA(Libro1.xlsm) que contiene:
- Archivos de Excel (.xlsx ó .xlsm) con sus tres Hojas para macros a nivel de Hoja y ThisWorkbook (este libro) para macros a nivel de libro. Se activa la ventana de código haciendo doble clic(izq) en uno de estos objetos.
2) Ventana de Código, donde se escribe el código.
3) Ventana Inmediato, para ejecutar sentencias de código.
4) Barra de Menús
5) Barra de Herramientas
6) Barra de Títulos
7) Insertar un nuevo Módulo en el Proyecto activo
8) Ejecutar la Macro seleccionada o Modulo (F5)
9) Detiene la Ejecución
10) Objeto
11) Propiedad del Objeto anterior