Beruflich Dokumente
Kultur Dokumente
Curso de Excel
Avanzado
SESIN 2:
INTRODUCCIN A VBA
J. David Moreno
NDICE
2
1.
1.
2.
1.
2.
InputBox
MsgBox
3.
1.
2.
3.
4.
5.
Copiar un rango
Copiar un rango de tamao variable
Seleccionar el extremo de la fila o columna
Seleccionar una fila o una columna
Mover un rango
4.
1.
2.
3.
INTRODUCCIN A LAS
MACROS Y VBA
J. David Moreno
INTRODUCCIN A VBA
4
Hay
Debemos
1.
2.
3.
4.
5.
Objetos
Colecciones
Propiedades
Mtodos
Procedimientos Sub y Funciones
INTRODUCCIN A VBA
5
3.
Modulo es un
contenedor de
programas de VBA
INTRODUCCIN A VBA
6
2.
3.
4.
5.
En un mdulo podemos
tener ms de 1
procedimiento (macro)
En un libro de
Excel se puede
tener uno o ms
Mdulos
Puedo cambiar
nombre del Modulo
en VENTANA
PROPIEDADES
INTRODUCCIN A VBA
8
Macro
Procedimiento
Objeto
Mdulo
Propiedad
Mtodo
INTRODUCCIN A VBA
9
Los
INTRODUCCIN A VBA
10
COLECCIONES
Todos
INTRODUCCIN A VBA
11
Windows
Cuando escribamos
cdigo VBA y queramos
referirnos a un objeto,
debemos especificar su
posicin en la jerarqua
de objeto.
Usando un punto como
separador
Workbooks
Charts
Worksheets
ChartObject
Range
Ejemplos con el Libro1 y Hoja 1
Application.Workbooks(Libro1).Worksheets(Hoja1).Range(B1:B5).Propiedad
Application.Workbooks(Libro1).Worksheets(Hoja1).Range(B1:B5).Metodo
INTRODUCCIN A VBA
12
ge(D10)
INTRODUCCIN A VBA
13
Ejemplo3
Se puede escribir as si la
Hoja1 del Libro Ventas es
ahora la hoja activa
n Workbooks(Ventas).Worksheets(Hoja1).Range(D1
0)
n Application.Workbooks(Ventas).Worksheets(Hoja1)
.Range(D10)
INTRODUCCIN A VBA
14
PROPIEDADES DE OBJETOS
Todos
= 100
INTRODUCCIN A VBA
15
mtodos
Propiedades
INTRODUCCIN A VBA
16
column: Range(D10).Column
Porpiedad row: Range(D10).Row
formula:
n Range(D10).Formula=
=SUM(A1:A5)
=$A1$+5*B$1
Funciones deben ir
en ingls
n Range(B2:B3).Formula=
INTRODUCCIN A VBA
17
AYUDA DE VBA
Situado en el Editor de Visual,
si hacemos clic F1
18
da, F1
u
y
a
la
r
a
n
e
r
t
n
e
Hay que
INTRODUCCIN A VBA
19
INTRODUCCIN A VBA
20
10
INTRODUCCIN A VBA
21
INTRODUCCIN A VBA
22
11
INTRODUCCIN A VBA
23
Podemos activarlo
estndo en la ventana
del Editor de VBA y
pulsando F2
Haciendo clic
aqui
INTRODUCCIN A VBA
24
12
INTRODUCCIN A VBA
25
.Caption
.ActiveSheet
.Selection
.Name
.Path
.Path
.ActiveCell
.Saved
INTRODUCCIN A VBA
26
Ejercicio: Realice una macro que muestre en un mensaje la ruta donde tiene
grabado su archivo de Excel.
Si no ponemos una variable
c = Application.Path
(c) que recoja la informacin
MsgBox (La ruta de acceso a este archivo es " & c)nos dar error
d=ActiveCell.Column
MsgBox (La celda activa se encuentra en la columna letra & d)
13
INTRODUCCIN A VBA
27
INTRODUCCIN A VBA
28
Guin bajo
valor = Application.ActiveCell.Value
MsgBox valor
14
INTRODUCCIN A VBA
29
INTRODUCCIN A VBA
30
.Index
.Count
.Name
.Value
.Name
.UsedRange
Seleccin el rango completo de la
hoja (selecciona hasta la ultima fila y
columna donde hay algn dato)
.Formula
.Text
.Font
15
INTRODUCCIN A VBA
31
Interior
.EntireRow
Devuelve un objeto Range que representa toda la fila (o filas) que contiene el rango
especificado.
EntireColumn
.Offset(Rowoffset,Columnoffset)
.Row
.Column
Devuelve objeto Range que representa toda la columna/s que contiene el rango especificado
.End
Devuelve un objeto range que representa la celda situada al final de la regin que
contiene el rango de origen.
INTRODUCCIN A VBA
32
ActiveSheet.UsedRange.Select
16
INTRODUCCIN A VBA
33
INTRODUCCIN A VBA
34
Solucin
MsgBox d
17
INTRODUCCIN A VBA
35
MTODOS DE OBJETOS
Todos
Por
Range(A1:B5).Clear
Otro
INTRODUCCIN A VBA
36
.Calculate
Cierra Excel
.InputBox
.Open
.Save
De la coleccin
de workbooks
.Activate
.Add
.DoubleClick
.Quit
.SaveAs
18
INTRODUCCIN A VBA
37
.Active
.Calculate
.Paste
.PrintOut
Imprime el objeto
.Select
.Activate
.PasteSpecial
.ClearContents
.Copy
.Delete
Elimina el rango
y
BA ha
V
r
e
d
o
pren
Para a sta el fond
ha
barro
rse en
e
t
e
m
que
el
38
19
INTRODUCCIN A VBA
39
INTRODUCCIN A VBA
40
20
INTRODUCCIN A VBA
41
INTRODUCCIN A VBA
42
21
INTRODUCCIN A VBA
43
VARIABLES
En todos los lenguajes de programacin (C++,
Fortran,) debemos definir las variables con las
que trabajaremos.
En VBA no es necesario declarar las variables
explcitamente antes de usar el cdigo.
Excepto que
Aunque es muy recomendable hacerlo.
introduzcamos al
inicio del cdigo la
Para declarar una variable
instruccin: Option
explicit
INTRODUCCIN A VBA
44
Tipo Integer
Tipo Double
Tipo Single
Tipo String
Variable de texto
Tipo Bolean
22
INTRODUCCIN A VBA
45
PUBLICAS:
INTRODUCCIN A VBA
46
CONSTANTES
En
Ejemplo:
Const TipoInteres As Double
TipoInteres=0.025
Para
23
INTRODUCCIN A VBA
47
DECLARACIN DE MATRICES
Una
n Matriz
USANDO InputBox Y
MsgBox
Y EL MEN DEPURACIN
J. David Moreno
24
INTRODUCCIN A VBA
49
InputBox (Funcin)
Sintaxis
Ejemplo 1:
Dim Numero1to10 As Integer
Numero1to10= InputBox("Ingrese un nmero entero del 1 al 10")
Ejemplo 2:
Dim Numero1to10 As Integer
Dim Mensaje, Titulo
Mensaje="Ingrese un nmero entero del 1 al 10
Titulo=Ventana de Ejemplo 2
ValorPredeter=1
Numero1to10= InputBox(Mensaje, Titulo, ValorPredeter)
INTRODUCCIN A VBA
50
MsgBox (Funcin)
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn.
Puede devolver un tipo Integer correspondiente al botn elegido por el usuario.
Sintaxis
Ejemplo 1:
Dim MiEdad As Integer
MiEdad = InputBox("Introduzca su Edad en aos")
MsgBox ("Usted ha informado que su edad es " & MiEdad)
Ejemplo 2:
Dim MiEdad As Integer
Dim Mensaje, Titulo, Estilo
MiEdad = InputBox("Introduzca su Edad en aos")
Mensaje = "Su edad es " & MiEdad & " aos. Es correcto?"
Titulo = "Ventana comprobacin datos introducidos"
Estilo = vbYesNo
Respuesta = MsgBox(Mensaje, Estilo, Ttulo)
25
INTRODUCCIN A VBA
51
INTRODUCCIN A VBA
52
Solucin:
26
INTRODUCCIN A VBA
53
Solucin
Como no se ha definido
aparece como Variant
INTRODUCCIN A VBA
54
27
INTRODUCCIN A VBA
55
Solucin
INTRODUCCIN A VBA
56
Solucin
28
TRABAJANDO CON
RANGOS
J. David Moreno
INTRODUCCIN A VBA
58
29
INTRODUCCIN A VBA
59
INTRODUCCIN A VBA
60
GRABADORA
n Usemos
DE MACROS
genera.
Cdigo de la grabadora
PRIMERO hace seleccin
SEGUNDO: Copia
TERCERO: Selecciona destino
CUARTO: Pega
QUINTO: anula modo copiar
Resultado de
ejecutar la macro
30
INTRODUCCIN A VBA
61
Podemos
INTRODUCCIN A VBA
62
Ejemplo:
31
INTRODUCCIN A VBA
63
CDIGO VBA
Debemos
INTRODUCCIN A VBA
64
GRABADORA DE MACROS
IR A ESPECIALRegin
Actual
32
INTRODUCCIN A VBA
65
xlUp
xlDown
xlToLeft
xlToRight
INTRODUCCIN A VBA
66
33
INTRODUCCIN A VBA
67
INTRODUCCIN A VBA
68
34
INTRODUCCIN A VBA
69
INTRODUCCIN A VBA
70
Ejemplo:
35
TRABAJAR CON
FUNCIONES
J. David Moreno
INTRODUCCIN A VBA
72
Su cdigo sera:
Function NombreFuncin(Arg1,Arg2,)
[Sentencias]
End Function
36
INTRODUCCIN A VBA
73
Solucin cdigo:
INTRODUCCIN A VBA
74
Podemos introducirlo as
O directamente al escribir el
nombre de la funcin
AreaRectang ya nos aparece
como una funcin
37
INTRODUCCIN A VBA
75
INTRODUCCIN A VBA
76
38
INTRODUCCIN A VBA
77
Solucin:
INTRODUCCIN A VBA
78
39
INTRODUCCIN A VBA
79
3.
4.
40