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