Este programa es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior. Este programa se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la Licencia Pública General GNU para obtener una información más detallada. Debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte . NOTA: ESTOS CODIGOS FUERON TOMADOS DEL LIBRO DE MAURICIO BAEZA, NOTA: LAS MODIFICACIONES SON POR PARTE DE LA PAGINA WEB WWW.EXGOE.COM ESPERO QUE SIRVAN EN EL APRENDIZAJE DE LAS MACROS Option Explicit Sub CalcularCirculo Dim dArea As Double Dim dPeri As Double Dim sRadio As Single Dim Respuesta as integer sRadio = CSng( Trim( InputBox( "¿Cual es el radio?", "Circulo", "1" ) ) ) If sRadio > 0 Then 'Aquí usamos la función SIN el argumento opcional dArea = Circulo( sRadio ) 'Y aquí usamos la función CON el argumento opcional dPeri = Circulo( sRadio, True ) Respuesta = msgbox( "Si desea calcular el area seleccione si, si desea calcular el perimetro seleccione no", 4, "OPCION") if respuesta = 6 then MsgBox "Área = " & Str(dArea), 64, "Circulo" else msgbox "Perímetro = " & Str(dPeri), 64, "Circulo" EndIf End If End Sub Function Circulo( Radio As Single, Optional Perimetro As Boolean ) As Double Const PI As Single = 3.1416 'Comprobamos si el parámetro se paso o no If IsMissing( Perimetro ) Then 'Si no se paso le asignamos el valor por default Perimetro = False if perimetro is false then msgbox "perimetro es falso" else msgbox "perimetro es verdadero" endif End If If Perimetro Then Circulo = PI * ( Radio * 2 ) 'Calculo de PERIMETRO Else Circulo = PI * ( Radio ^ 2 ) 'calculo de AREA End If End Function ' AQUI EMPIEZA EL SEGUNDO CODIGO Option Explicit Sub CalcularCirculo Dim dArea As Double Dim dPeri As Double Dim sRadio As Single sRadio = CSng( Trim( InputBox( "¿Cual es el radio?", "Circulo", "1" ) ) ) If sRadio > 0 Then 'Aquí usamos la función SIN el argumento opcional dArea = Circulo( sRadio ) MsgBox "Área = " & Str(dArea) End If End Sub Function Circulo( Radio As Single, Optional Perimetro As Boolean ) As Double Const PI As Single = 3.1416 'Comprobamos si el parámetro se paso o no If IsMissing( Perimetro ) Then 'Si no se paso le asignamos el valor por default Perimetro = False msgbox "perimetro es falso" End If If Perimetro Then Circulo = PI * ( Radio * 2 ) 'Calculo de PERIMETRO Else Circulo = PI * ( Radio ^ 2 ) 'calculo de AREA End If End Function