A) Macros y El Editor de Visual Basic
A) Macros y El Editor de Visual Basic
A) Macros y El Editor de Visual Basic
N: 21222237
Ahora que tiene información sobre cómo las aplicaciones de Office exponen sus
modelos de objetos, probablemente estará deseando intentar invocar métodos de
objetos, establecer propiedades de objetos y responder a eventos de objetos. Para
ello, debe escribir su código en un lugar y en una forma que Office pueda entender,
normalmente, con el Editor de Visual Basic. Aunque está instalado de forma
predeterminada, muchos usuarios no saben que está disponible hasta que se habilita
en la barra de herramientas.
Todas las aplicaciones de Office usan la cinta de opciones. Una de las pestañas de la
cinta de opciones es la pestaña Desarrollador, donde puede obtener acceso al
Editor de Visual Basic y otras herramientas de desarrollo. Como en Office no se
muestra la pestaña Desarrollador de forma predeterminada, tiene que seguir este
procedimiento para habilitarla:
Las fórmulas nos permiten utilizar Excel como si fuera una calculadora, solamente
debemos introducir la ecuación en la Barra de fórmulas, pulsar la tecla Entrar y Excel
calculará el resultado. En el siguiente ejemplo puedes observar un ejemplo de
fórmula que utiliza solamente números:
Estos números son constantes, lo que significa que su valor nunca cambiará y la fórmula siempre
regresará el mismo resultado mientras tanto y no modifiquemos los números. Sin embargo una de
las ventajas más grandes al utilizar fórmulas en Excel es que podemos utilizar referencias de
celda dentro de la ecuación.
Las referencias de celda nos ofrecerán un mayor grado de flexibilidad en nuestras fórmulas.
Considera el siguiente ejemplo
1
Fernando Erick de Rosa Hernández N.N: 21222237
La diferencia entre utilizar contantes y referencias de celda es que el resultado de una fórmula
con referencias de celda dependerá del valor de otras celdas. Si el valor de cualquiera de las celdas
referenciadas cambia, entonces el resultado de la fórmula también será actualizado.
Si actualizo el valor de la celda B2 por 6, tan pronto como pulse la tecla Entrar habrá dos
actualizaciones en la hoja de cálculo. En primer lugar se actualizará el valor de la celda B2 y en
segundo lugar el resultado de la fórmula de la celda D2 también será actualizado.
Observa que el resultado de la fórmula de la celda D1 no cambia porque sus elementos son siempre
constantes.
De esta manera puedes observar la flexibilidad que ofrece el utilizar referencias de celda dentro de
nuestras fórmulas ya que podemos controlar su resultado sin la necesidad de editar la fórmula.
c) Variables
En los ejemplos simples presentados en este artículo, ha manipulado objetos ya creados por la
aplicación. Es posible que desee crear sus propios objetos para almacenar valores o referencias a
otros objetos para su uso temporal en la aplicación. Estos se denominan variables.
Para usar una variable en VBA, tiene que indicar a VBA el tipo de objeto que representa la variable
con la instrucción Dim. Después, configure su valor y úselo para establecer otras variables o
propiedades.
Niveles de declaración
Una variable local es aquella que se declara dentro de un procedimiento. Una variable miembro es
un miembro de un tipo de Visual Basic; se declara en el nivel de módulo, dentro de una clase,
estructura o módulo, pero no dentro de ningún procedimiento interno de esa clase, estructura o
módulo.
2
Fernando Erick de Rosa Hernández N.N: 21222237
De lo contrario, es una variable de instancia y se crea una copia independiente para cada instancia
de la clase o estructura. Una copia determinada de una variable de instancia solo está disponible
para la instancia de la clase o estructura en la que se ha creado. Es independiente de una copia de
la variable de instancia en cualquier otra instancia de la clase o estructura.
d) Estructuras de control
Las estructuras de control son el conjunto de reglas que permiten controlar el flujo de ejecución de
las instrucciones de un algoritmo o de un programa.
La mayoría de los lenguajes de programación actuales soportan o utilizan las mismas estructuras de
control o, al menos, son muy parecidas. Lo que varía entre uno y otro es la sintaxis con la que se
escriben y, por lo tanto, con la que los compiladores o intérpretes lo traducen a lenguaje de
máquina.
1. Secuenciales o de secuencia
Esta es la estructura básica, ya que nos permite asegurar que una instrucción se ejecuta después de
la otra siguiendo el orden en que fueron escritas. Es la base de la programación estructurada. De ahí
que el comando GOTO sea desestimado como una buena práctica: un programa bien pensado,
diseñado e implementado no necesitará esta sentencia.
Este tipo de estructuras de control nos sirven cuando necesitamos que se evalúe el valor de alguna
variable o de alguna condición para decidir qué instrucciones ejecutar a continuación.
Selectivas simples
Evalúan un valor o una condición y determinan las instrucciones a ejecutar en caso de cumplirse la
condición.
Selectivas dobles
Evalúan un valor o una condición. Determinan las instrucciones a ejecutar en caso de cumplirse la
condición y también las instrucciones a ejecutar en caso de no cumplirse.
Permiten combinar selectivas simples y dobles para crear estructuras y condiciones más complejas
cuando el algoritmo en cuestión lo necesite.
Este tipo de estructuras de control nos sirven cuando necesitamos que se ejecute un conjunto
específico de instrucciones en diversas ocasiones. La cantidad de veces que se repite dicho bloque
de acciones puede ser estático o puede depender del valor de alguna variable o de alguna condición.
3
Fernando Erick de Rosa Hernández N.N: 21222237
Se utilizan cuando a priori se conoce la cantidad de ocasiones que debe repetirse un bloque de
instrucciones. Normalmente, usan una variable de iteración o índice para contar la cantidad de
repeticiones que se han realizado.
Variables globales
Las variables globales son accesibles por todas las funciones desde su
declaración hasta el final del fichero.
Disminuye la legibilidad
Su uso puede producir efectos colaterales, al producirse alteraciones no
previstas de su valor en una parte del programa que afectan a su uso en otra
zona.
Dificultan la modularidad del código.
Las variables y/o funciones globales se justifican cuando se necesitan en casi
todas las funciones del programa.
4
Fernando Erick de Rosa Hernández N.N: 21222237
Variables locales
Las variables locales son accesibles desde su declaración hasta el final
del bloque de código del fichero en el que han sido declaradas.
Si usa el complemento Power Pivot, puede cambiar el tipo de datos de una columna. Es posible
que tenga que hacerlo si una columna de fecha se importó como una cadena, pero necesita que
sea otra cosa. Para obtener más información, vea Establecer el tipo de datos de una columna en
Power Pivot.
En la tabla siguiente se enumeran los tipos de datos admitidos en un modelo de datos. Al importar
datos o usar un valor en una fórmula, incluso si el origen de datos original contiene un tipo de
datos diferente, los datos se convierten en uno de estos tipos de datos. Los valores resultantes de
las fórmulas también usan estos tipos de datos.
DAX usa un tipo de datos de tabla en muchas funciones, como agregaciones y cálculos de
inteligencia de tiempo. Algunas funciones requieren una referencia a una tabla; otras funciones
devuelven una tabla que se puede usar como entrada a otras funciones. En algunas funciones que
requieren una tabla como entrada, puede especificar una expresión que se evalúa como una tabla;
para algunas funciones, se requiere una referencia a una tabla base. Para obtener información
sobre los requisitos de funciones específicas, vea Referencia de función dax.
5
Fernando Erick de Rosa Hernández N.N: 21222237
Cada función DAX tiene requisitos específicos en cuanto a los tipos de datos que se usan como
entradas y salidas. Por ejemplo, algunas funciones requieren enteros para algunos argumentos y
fechas para otros; otras funciones requieren texto o tablas.
Si los datos de la columna que especifique como argumento no son compatibles con el tipo de
datos requerido por la función, DAX en muchos casos devolverá un error. Sin embargo, siempre
que sea posible DAX intentará convertir implícitamente los datos en el tipo de datos necesario. Por
ejemplo:
Puede escribir una fecha como una cadena y DAX analizará la cadena e intentará
convertirla como uno de los Windows de fecha y hora.
Si agrega valores en dos columnas y un valor se representa como texto ("12") y el otro
como un número (12), DAX convierte implícitamente la cadena en un número y, a
continuación, realiza la adición de un resultado numérico. La siguiente expresión devuelve
44: = "22" + 22
Si intenta concatenar dos números, Excel los presentará como cadenas y, después,
concatenará. La siguiente expresión devuelve "1234": = 12 & 34
En la tabla siguiente se resumen las conversiones implícitas de tipos de datos que se realizan en
fórmulas. Excel realiza conversiones implícitas siempre que sea posible, según lo requiera la
operación especificada.
El tipo de conversión que se realiza lo determina el operador, que convierte los valores que
requiere antes de realizar la operación solicitada. Estas tablas muestran los operadores e indican la
conversión que se realiza en cada tipo de datos de la columna cuando se empareja con el tipo de
datos de la fila intersecante.
g) Identificadores
6
Fernando Erick de Rosa Hernández N.N: 21222237
CostoArticulo
Nuevo_sueldo
Direccion
Nombre
Horas_Trab
#alumnos
profesión
2categoría
7
Fernando Erick de Rosa Hernández N.N: 21222237
Sueldo Neto
Nombre-Apellido
Área2
h) Funciones y Subrutinas
Programar requiere algún tipo de organización en la escritura de código. No
organizar de alguna forma el código que se escribe solo dificulta la lectura y
modificación del mismo para el programador.
Organizar el código tiene muchas ventajas, una muy importante es la reusabilidad
del código. Es común que al escribir algún programa existas operaciones que se
requieren repetir en diversas secciones del código, con diferentes parámetros.
Resultaría impráctico e ineficiente escribir una y otra vez el fragmento de código
cada vez que se necesite, en lugar de eso es útil escribir ese código en una parte
especial del programa y mandarlo llamar cada vez que se necesite, incluso con
parámetros diferentes. A esto se le conoce como reutilización de código.
En Gambas el código se organiza dividiéndolo en procedimientos. Existen dos
tipos de procedimientos: subrutinas y funciones.
Subrutinas
Una subrutina es un procedimiento que ejecuta cierta acción y obtiene un resultado.
Las subrutinas pueden o no recibir parametros para su ejecución y no devuelven
un resultado.
La sintáxis para escribir una subrutina es la siguiente:
Observe que la sintaxis de la subrutina requiere de un nombre único con el que se
identificará dentro del programa. Opcionalmente se le puede enviar algún
parámetro el cual la subrutina lo recibe con las variables que se declaran dentro de
los paréntesis que están inmediatamente despues del nombre. El código que forma
parte de la subrutina se debe escribir hasta antes de la palabra clave End.
El código de la subrutina debe escribirse al final del programa, justo después de
que termina la rutina principal.
Ejemplo. Esta Subrutina calcula el promedio de dos números que recibe como
argumento.
El programa funciona de la siguiente forma: La rutina principal incia y cuando la
ejecución alcanza la líena donde se ecuentra media(4,8), Gambas busca una
8
Fernando Erick de Rosa Hernández N.N: 21222237
Funciones
Una función es un procedimiento que ejecuta cierta acción y obtiene un resultado.
Las funciones pueden o no recibir parametros para su ejecución y pueden o no
devolver algún resultado.
La sintáxis para escribir una función es la siguiente:
La sintaxis de la función requiere de un nombre único con el que se identificará
dentro del programa. Opcionalmente se le puede enviar algún parámetro el cual la
función lo recibe con las variables que se declaran dentro de los paréntesis que
están inmediatamente despues del nombre. El código que forma parte de la función
se debe escribir hasta antes de la palabra clave End.
Tal como la subrutina, el código de la función deberá escribirse después de la rutina
principal.
Ejemplo. Esta Función calcula el promedio de dos números que recibe como
argumento.
El programa funciona de la siguiente forma: La rutina principal incia, se declara la
variable x y cuando la ejecución alcanza la líena donde se ecuentra x =
9
Fernando Erick de Rosa Hernández N.N: 21222237
media(4,8), Gambas busca una función o subrutina que se haya declarado al final
de la rutina principal y brinca la ejecución hasta ese punto del programa. Al brincar,
se envían los números 4 y 8 como argumentos de la subrutina.
Una vez que la ejecución llegó a la función, se reciben los dos números 4 y 8 como
argumentos y se almacenan en las variables
locales valor1 y valor2 respectivamente. Observe que en ese momento se
convierte ese argumento al tipo de dato que se delcara en la función, en este
caso Integer. Por esta razón si el argumento no fuera entero, se convertiría
a Integer al guardarse en la variable.
En la función se declara la variable local p como Float. Luego se realiza el cálculo
y se almacena en la variable p. Posteriomente se invoca a la instrucción Return,
la cual se encarga de devolver el contenido de la variable que se le pasa como
argumento, en este caso p. Return devuelve el contenido de la variable x al punto
donde fue invocada la función, en este caso ese valor se almacena en la variable
local x de la subrutina principal.
Las variables valor1 y valor2 solamente existen dentro de la función. Esto
sigifica que cuando se manda llamar la función, se declaran tales variables y ellas
solo existen en el ámbito de la función. Una vez que termina la ejecución de la
función estas variables se destruyen. A este tipo de variables se les llama variables
locales.
Es posible que una función llame a otras subrutinas o funciones a su vez, incluso
puede llamarse a sí misma.
Nota Importante: Los arreglos y objetos siempre se pasan por referencia. Es
decir, si se pasa como parámetro un arreglo de elementos Integer a una función,
al modificarlo dentro de la función, se verá modificado el original.
En un archivo de ensamblaje, puede vincular también con un archivo de pieza (.ipt). Cuando
se pulsa Vincular y se selecciona el archivo de pieza deseado, el ensamblaje se vincula
asociativamente a los parámetros exportados desde el archivo .ipt.
Nota: Desde las hojas de cálculo solo se pueden vincular parámetros numéricos.
10
Fernando Erick de Rosa Hernández N.N: 21222237
Los datos pueden comenzar en cualquier celda de la hoja de cálculo. Si los datos no comienzan en la
celda A1, especifique la posición inicial de datos en Inventor cuando vínculo o incruste el archivo
Excel. Si utiliza un nombre de encabezado de columna en una celda, no especifique dicha celda
como la posición inicial de datos.
Los elementos de datos pueden estar en filas o columnas, pero deben estar en el orden correcto:
nombre de parámetro, valor o ecuación , unidad de medida, comentario.
Nota: El orden de los datos en Excel difiere del orden en el cuadro de diálogo Parámetros de
Inventor.
El nombre y valor del parámetro son necesarios; el resto de elementos son opcionales. Las celdas
asociadas al nombre y valor de parámetro no pueden estar en blanco.
Si no especifica las unidades de medida para un parámetro, las unidades por defecto para el modelo
se asignarán cuando utilice el parámetro. Para crear un parámetro sin unidades, especifique SU en la
celda correspondiente a las unidades.
Puede incluir encabezamientos de columna o fila u otra información en la hoja de cálculo, pero debe
estar fuera del bloque de celdas que contiene las definiciones de los parámetros.
11