Introducción a la Programación en Visual Basic y su aplicación en Excel. M.I. Jaime Alfonso Reyes Cortés TEMA 3 CREACIÓN DE MACROS Y FUNCIONES EN EXCEL. Programación Orientada a Objetos y Programación Basada en Objetos. • En la P.O.O. se trabaja con objetos que representan entidades del mundo real; les asocian propiedades (atributos) y tienen procedimientos que permiten trabajar con ellos (métodos o funciones). • Se puede definir cualquier objeto que se desee, así como sus atributos y métodos. • En la P.B.O. los objetos, junto con sus atributos y métodos ya se encuentran definidos. El programador hace uso de dichos objetos, métodos y puede cambiar los valores de los atributos. El modelo de objetos de Excel El modelo de objetos de Excel El objeto cuadro de diálogo de mensajes. • MsgBox “Curso Introducción a la programación en Visual Basic y su aplicación en Excel.“ • MsgBox “Valor de la celda A3 es: " & Range("A3").Value • MsgBox “Una línea" & vbNewLine & “y debajo otra línea." Objetos Workbook y Worksheet • Range("A1").Value = “En la celda A1“ • Application.Workbooks(“listaejemplo").Worksheets(1).Range(" A1").Value = " En la celda A1 “ Objetos Workbook y Worksheet (Colecciones) • Worksheets(“Asistencias").Range("A1").Value = “Asistencias“ • Worksheets(1).Range("A1").Value = “Asistencias“ • Hoja1.Range("A1").Value = "Asistencias" Objetos Workbook y Worksheet (Propiedades y métodos) • Workbooks.Add • MsgBox “Hojas de trabajo = “ & Worksheets.Count Objetos Range y Cells • Range("B3").Value = 2 • Range("A1:A4").Value = 5 • Range("A1:A2,B3:C4").Value = 10 • Cells(3, 2).Value = 2 • Range(Cells(1, 1), Cells(4, 1)).Value = 5 Objetos Range y Cells • Dim rango As Range Set rango = Range("A1:C4") rango.Value = 8 Objeto Range y Select • Dim rango As Range Set rango = Range("A1:C4") rango.Select • Dim rango As Range Set rango = Range("A1:C4") rango.Rows(3).Select • rango.Columns(2).Select Copiar y Pegar • Range(“A1:A2”).Value = 5 • Range("A1:A2").Select Selection.Copy Range("C3").Select ActiveSheet.Paste • Range("C3:C4").Value = Range("A1:A2").Value Borrar contenido de celdas • Range("A1").ClearContents • Range("A1").Value = "" Conteo de celdas seleccionadas • Dim rango As Range Set rango = Range("A1:C4") MsgBox rango.Count • MsgBox rango.Rows.Count Tipos de variables en VBA • Dim x As Integer x=6 Range("A1").Value = x • Dim libro As String libro = “Ingenieria" Range("A1").Value = libro • Dim y As Double y = 5.5 MsgBox “Valor de y= " & y • Dim bandera As Boolean bandera = True • MsgBox “bandera= " & bandera InputBox • • • • Dim Numero1 As Double Dim Numero2 As Double Numero1 = Val(InputBox(“Primer calificación", “Calificación 1")) Numero2 = Val(InputBox(“Segunda calificación", “Calificación 2")) ActiveSheet.Range("A1").Value = Numero1 + Numero2 • • • • Dim cadena1, cadena2 As String cadena1 = Str(InputBox(“Primer cadena", “Cadenas")) cadena2 = Strl(InputBox(“Segunda cadena", “Cadenas")) ActiveSheet.Range("A1").Value = cadena1 + cadena2 Estructura de decisión simple • If <condición> Then • ‘bloque de Sentencias End If • Dim calif As Double, result As String calif = Range(“L3").Value If calif >= 6.0 Then result = “pasó el examen.“ End If Range(“A1").Value = result MsgBox Range(“A1").Value Estructura de decisión doble • If <condición Then ‘bloque de Sentencias 1 Else ‘bloque de Sentencias 2 End If • Dim calif As Double, result As String calif = Range(“L3").Value If calif >= 6.0 Then result = “pasó el examen.“ Else result = “no pasó el examen” End If Range(“A1").Value = result MsgBox Range(“A1").Value Operadores relacionales y lógicos • >, < • >=, <= •= • Not • And • Or Estructura de decisión múltiple • Select [ Case ] expresión a evaluar [ Case lista de expresiones [Instrucciones a ejecutar] ] [ Case Else [ Instrucciones a ejecutar en el caso del else] ] End Select • Dim numero As Integer, cad As String numero = 8 • Select Case numero Case 0 To 5 cad = “El alumno no aprobó“ Case 6, 7 cad = “El alumno obtuvo una calificación suficiente“ Case 8 To 10 cad = “El alumno obtuvo una buena calificación “ Case Else cad = “Calificación no está en el rango de calificaciones“ End Select • MsgBox cad Estructura de decisión múltiple • Select [ Case ] expresión a evaluar [ Case Is “cadena” [Instrucciones a ejecutar] ] [ Case Else [ Instrucciones a ejecutar en el caso del else] ] End Select • Dim cad, cad1 As String cad1 = “hola” • Select Case cad1 Case Is “hola” cad = “¡Hola! ¿Qué tal?“ Case Is “adiós” cad = “¡Hasta luego“ Case Else cad = “Cadena no definida.“ End Select • MsgBox cad Estructuras de repetición (For…To) • For Variable = Valor_Inicial To Valor_Final [Step Incremento] ‘bloque de sentencias • Next Variable Estructuras de repetición (Do…While) • Do While (se cumpla la condición) ‘bloque de sentencias • Loop Estructuras de repetición (Do…Until) • Do Until (condición) ‘bloque de sentencias • Loop Estructuras de repetición (For each) • For each variable In Objeto ‘bloque de sentencias • Next variable Sentencia With • With objeto [ Instrucciones ] End With • With Cells(1, 1) .Value = “Macros en Excel” .Font.Bold = True End With