Ejercicios de
Visual Basic para
macros en Excel
Ejercicios Visual Basic para macros en Excel
1. Realice la programación en Visual Basic que automatice la ejecución de: hoja
de cálculo que dado un número entre 1 y 20 en G1 (en el ejemplo es el 7),
calcule la tabla de multiplicar módulo dicho número, es decir, el resultado
intersección de la fila i y la columna j es el resto de dividir i*j entre el contenido
de la celda G1.
2. Realice la programación en Visual Basic que automatice la ejecución de: hoja
de cálculo que dado un número entre 1 y 20 en G1 (en el ejemplo es el 7),
calcule la tabla de multiplicar módulo dicho número, es decir, el resultado
intersección de la fila i y la columna j es el resto de dividir i+j entre el contenido
de la celda G1.
3. Realice la programación en Visual Basic que automatice la ejecución de los
siguientes ejercicios con matrices:
a. Que sume los elementos de dos tablas o matrices. La primera matriz llamada
M1 y la segunda matriz llamada M2 se sumarán y sus resultados serán
2
Ejercicios Visual Basic para macros en Excel
almacenados en una tercera matriz llamada MR.
b. Que multiplique los elementos de dos matrices. La primera matriz llamada
M1, la segunda matriz llamada M2 y el matriz producto MP.
c. Que copie todos los elementos de una matriz M1 (Hoja 1) en otra matriz M2
(Hoja 2).
d. Que cambien los elementos de dos matrices. Todos los elementos de la
primera matriz pasarán a la segunda matriz y todos los elementos de la
segunda matriz pasarán a la primera matriz.
e. Que multiplique por un factor x (ingresado por el usuario) todos los
elementos de dos matrices. Luego de ser multiplicados por el factor x deben
ser sumadas y almacenados en otra matriz su resultado.
f. Que divida entre dos todos los elementos de dos matrices. Luego de ser
divididos deben ser sumadas y almacenados en otra matriz su resultado.
g. Que divida dos matrices. La primera matriz llamada dividendo que tendrá los
números a dividir y la segunda matriz llamada divisora que tendrá los
números que dividirán los elementos de la primera matriz. Los cocientes o
resultados serán almacenados en otra matriz llamada cociente.
h. Que genere una matriz cuadrada NxN y verifique si la matriz es o no
simétrica.
i. Que ingrese los valores de la matriz cuadrada NxN de números enteros y
muestre la suma de los múltiplos de 5 que están en la diagonal principal.
j. Que cree una matriz NxN, calcule y muestre:
La suma de los elementos que están por encima de la diagonal
principal.
La suma de los elementos que están por debajo de la diagonal
principal.
La suma de los elementos que están en la diagonal principal.
La suma de los elementos que están en la diagonal secundaria.
k. Que ingrese los elementos de una matriz NxM y calcule la suma de cada
una de sus filas y columnas, dejando dichos resultados en dos vectores, uno
para la suma de las filas y otro para la suma de las columnas.
l. Que permita llenar con “X” y “O” una matriz 3x3 y luego inspeccione los
valores de sus elementos y diga “GANARON LAS X” si en cualquiera de sus
filas, columnas o diagonales hay 3 “X”, o “GANARON LAS O” en caso de
que los valores sean “O”, o “EMPATE” sino se cumple ninguna de las
condiciones anteriores.
4. Si se deja caer un cuerpo desde una altura h, la altura que alcanza para
tiempo t es h(t)=h-gt2/2. El tiempo que emplea en llegar al suelo es:
3
Ejercicios Visual Basic para macros en Excel
t 2*h/ g
Realice la programación en Visual Basic que automatice la ejecución de: hoja de
cálculo, que partiendo del valor de g, y de la altura inicial, calcule el tiempo de
caída, y la altura alcanzada para los valores enteros del tiempo menores o
iguales que el tiempo de caída, como se muestra en la imagen de la izquierda.
La columna rotulada velocidad contiene las diferencias entre dos alturas
sucesivas y la rotulada aceleración las diferencias entre dos velocidades
sucesivas.
4. Realice la programación en Visual Basic que automatice la ejecución de: hoja
de cálculo, que calcule áreas de círculos (A=r2) y volúmenes de esferas
(V=4r3/3) para los valores del radio entre 0 y un máximo prefijado en metros.
Hacer la conversión de dichos valores a pulgadas, empleando para ello el
factor de conversión 1in=0.0254m, pero permitiendo que sea variable, es decir
almacenándolo en una celda de la hoja, como se muestra en la imagen de la
izquierda.
4
Ejercicios Visual Basic para macros en Excel
5. El siguiente algoritmo (derivado del método Newton-Raphson de análisis
numérico) sirve para calcular la raíz cuadrada de un número real positivo:
Partiendo de un número real positivo a se puede calcular la siguiente
secuencia xi de números positivos:
5
Ejercicios Visual Basic para macros en Excel
Realice la programación en Visual Basic que automatice la ejecución
de: hoja de cálculo que obtenga la sucesión xi. La sucesión deberá
parar cuando el término xi, redondeado a cuatro decimales, sea
igual al resultado de la función raíz.
Si en F1 no hay dato, o es negativo, deberá aparecer un mensaje de error.
6. Se denominan Variaciones ordinarias, o Variaciones sin repetición, de n
elementos tomados r a r con r n, y se representa como Vn,r, a las distintas
muestras que se pueden tomar con n elementos, tal que:
En cada muestra entren r elementos distintos
Dos muestras son distintas, si difieren en algún elemento o en el orden
de colocación de los mismos
El número de estas variaciones se puede calcular de la siguiente forma:
6
Ejercicios Visual Basic para macros en Excel
Realice la programación en Visual Basic que automatice la ejecución de: hoja
de cálculo que dado un Número Natural n distinto de muestre el número
de variaciones desde Vn,1 hasta Vn,n.
Si en G4 no hay dato, o no cumple las condiciones adecuadas, deberá
aparecer un mensaje de error.
7. Realice la programación en Visual Basic que automatice la ejecución de:
hoja de cálculo para calcular los N primeros términos de una progresión
aritmética a partir del primer término A y la diferencia entre los mismos D,
siendo N>0. Debe calcular también su suma.
7
Ejercicios Visual Basic para macros en Excel
Si N no cumple las condiciones, deberá aparecer un mensaje de error.
8. Dados dos números enteros positivos N y D, se dice que D es un divisor
de N si el resto de dividir N entre D es 0. Se dice que un número N es
primo si no tiene más divisores que él mismo y la unidad. Realice la
programación en Visual Basic que automatice la ejecución de: hoja de
cálculo que dado N nos diga si es, o no, primo.
9. Realice la programación en Visual Basic que automatice la ejecución de:
hoja de cálculo para convertir a binario números entre 0 y 100. Se indicará
el número resultante como aparece en el siguiente ejemplo (para el número
25):
8
Ejercicios Visual Basic para macros en Excel
El único valor que se introduce es el número decimal. El resto de valores
deben calcularse.
Se debe tener en cuenta que, aunque las divisiones se hacen como si se
operase “manualmente”, sólo se incluye el resto de cada división y no se
incluyen los resultados parciales para cada una de las cifras obtenidas
como cociente.
10. Dados dos números A1 y B1, se definen su media aritmética y su media
geométrica respectivamente como
Por el mismo procedimiento se calculan A3 y B3 a partir de A2 y B2, y así
sucesivamente. Las sucesiones {An} y {Bn} así construidas son
convergentes y su límite es el mismo, y recibe el nombre de media
aritmético-geométrica de A1 y B1. Realice la programación en Visual Basic
que automatice la ejecución de: hoja de cálculo usando Excel, que
partiendo de A1, B1 (situados en B4 y C4 respectivamente) y un valor
situado en B2), calcule los términos que sean precisos de ambas
sucesiones hasta que la diferencia en valor absoluto de An y Bn sea menor
que el valor de prefijado. La función valor absoluto en Excel es ABS(...).
9
Ejercicios Visual Basic para macros en Excel
11. Realice la programación en Visual Basic que automatice la ejecución de:
hoja de cálculo que dado un ángulo x (en B1) y un valor n (en D1) calcule
en la fila 3 el seno y el coseno de a=x/2n, empleando las fórmulas
sin(a)=a-a3/6 y cos(a)=1-a2/2. En la fila 4 debe calcular el seno y el
coseno de 2a, con las fórmulas: sin(2a)=2*sin(a)*cos(a) y cos(2a)=cos2(a)-
sin2(a), y repetir con las filas sucesivas hasta obtener el seno y el
coseno de x
12. Realice la programación en Visual Basic que automatice la ejecución de:
hoja de cálculo que dado un ángulo x (en B1) y un valor n (en D1) calcule
en la fila 3 el seno y el coseno hiperbólicos de a=x/2n, empleando las
fórmulas sinh(a)=a+a3/6 y cosh(a)=1+a2/2. En la fila 4 debe calcular el
seno y el coseno hiperbólicos de 2a, con las fórmulas:
sinh(2a)=2*sinh(a)*cosh(a) y cosh(2a)=cosh2(a)+sinh2(a), y repetir con
las filas sucesivas hasta obtener el seno y el coseno hiperbólicos de x.
10
Ejercicios Visual Basic para macros en Excel
13. Dado un depósito esférico de radio R, el volumen V de agua
que contiene en función de la altura h del agua es:
siendo V0 el volumen de una semiesfera de radio R.
Realice la programación en Visual Basic que automatice la ejecución de: hoja
de cálculo con Excel, que debe permitir calcular el volumen en función de la
altura para alturas comenzando en 0, con incrementos de
0.1 y hasta la altura total (2R). Además debe permitir calcular la altura del
agua para un volumen dado, para ello se utilizará el procedimiento
siguiente. Si despejamos h en la fórmula dada arriba se obtiene:
se considera la función
y se construye a partir de la misma la siguiente sucesión, h0 = R, h1 = f(h0),
h2 = f(h1), . . . Dicha sucesión converge al valor de la altura buscada,
calcular los valores necesarios de la sucesión { hn } , junto con el volumen
correspondiente, hasta que la diferencia | V (hn) - Vb | < , siendo Vb el
volumen buscado, V (hn) el volumen hasta la altura hn y > 0 un valor
prefijado.
11
Ejercicios Visual Basic para macros en Excel
14. Dado un depósito cónico de altura 2R y radio de la base R, el volumen V
de agua que contiene en función de la altura h del agua es:
Realice la programación en Visual Basic que automatice la ejecución de:
hoja de cálculo con Excel, que debe permitir calcular el volumen en función
de la altura para alturas comenzando en 0, con incrementos de
0.1 y hasta la altura total (2R). Además debe permitir calcular la altura del
agua para un volumen dado, para ello se utilizará el procedimiento
siguiente. Si despejamos h en la fórmula dada arriba se obtiene:
12V 6Rh2 h3
12
Ejercicios Visual Basic para macros en Excel
y se construye a partir de la misma la siguiente sucesión, h0 = R, h1 = f(h0),
h2 = f(h1), . . . Dicha sucesión converge al valor de la altura buscada,
calcular los valores necesarios de la sucesión { hn } , junto con el volumen
correspondiente, hasta que la diferencia | V (hn) - Vb | < , siendo Vb el
volumen buscado, V (hn) el volumen hasta la altura hn y > 0 un valor
prefijado.
15. Realice la programación en Visual Basic que automatice la ejecución de:
Cálculo de los valores de X partiendo de un valor inicial y una razón dados.
Calcular después los valores de la siguiente función:
13
Ejercicios Visual Basic para macros en Excel
16. Realice la programación en Visual Basic que automatice la ejecución
de: hoja de cálculo para pasar a decimal un número de hasta 10
cifras. El número puede venir dado en binario o en octal. La base
utilizada se indicará en la celda F1 y el número en cuestión se escribirá
en la fila 3; la fila 4 se reserva para las potencias de la base y en la
5 se escriben los productos. El resultado de las operaciones
aparecerá en la celda F7. A continuación aparece un ejemplo binario:
17. Realice la programación en Visual Basic que automatice la ejecución de:
El principio de conservación de la energía exige que en un sistema
conservativo la energía permanezca constante. Para un cuerpo de masa m
en caída libre desde una altura h, teniendo sólo en cuenta las energías
mecánicas y en ausencia de rozamiento, el principio de conservación de la
energía se expresa así:
Etotal Ep otencial Ec inetica
Donde las energías potencial y cinética cumplen las siguientes fórmulas:
Ep otencial mgh
1
Ecinetica mv
2
14
Ejercicios Visual Basic para macros en Excel
Siendo la velocidad del cuerpo en la caída:
v 2 gh '
Donde h’ es el trayecto de la altura recorrida por el cuerpo en la caída.
Realice una hoja de cálculo donde dada la masa del cuerpo y la altura
desde la que se deja caer desde el reposo, calcule las energías cinética y
potencial en los valores enteros de la altura hasta el suelo. Comprobar el
principio de conservación de la energía
h V Epotencial Ecinética ETotal
g 9,8 15 0 2352 0 2352
m 16 14 4,42718872 2195,2 156,8 2352
h 15 13 6,26099034 2038,4 313,6 2352
12 7,66811581 1881,6 470,4 2352
11 8,85437745 1724,8 627,2 2352
10 9,89949494 1568 784 2352
9 10,8443534 1411,2 940,8 2352
8 11,7132404 1254,4 1097,6 2352
7 12,5219807 1097,6 1254,4 2352
6 13,2815662 940,8 1411,2 2352
5 14 784 1568 2352
4 14,6833239 627,2 1724,8 2352
3 15,3362316 470,4 1881,6 2352
2 15,962456 313,6 2038,4 2352
1 16,5650234 156,8 2195,2 2352
0 17,1464282 0 2352 2352
15
Ejercicios Visual Basic para macros en Excel
18. Realice la programación en Visual Basic que automatice la ejecución de:
Un tiro parabólico es el que se obtiene al componer un movimiento rectilíneo
y uniforme, según la horizontal, con otro de elevación, rectilíneo y
uniformemente acelerado. Es el caso del lanzamiento de un proyectil con
un ángulo de inclinación y una velocidad inicial V0, en el campo
gravitatorio terrestre.
La posición del proyectil viene dada por las coordenadas de éste en cada
instante, que cumplen las siguientes fórmulas:
x v 0 tcosα
1
y v 0 tsenα gt
2
Siendo el tiempo que tarda dicho proyectil en impactar con el suelo:
Realice una hoja de cálculo donde dado el ángulo de inclinación alfa (en
grados) y la velocidad de lanzamiento del proyectil, Vinicial, calcule la posición
de éste en los valores enteros de tiempo antes del momento de impacto con el
suelo.
T X Y
g 9,8 0 0,000 0,000
alfa 30 1 129,904 70,100
Vinicial 150 2 259,808 130,400
3 389,711 180,900
Tmax 15,306 4 519,615 221,600
5 649,519 252,500
6 779,423 273,600
7 909,327 284,900
8 1039,230 286,400
9 1169,134 278,100
10 1299,038 260,000
11 1428,942 232,1
12 1558,846 194,4
13 1688,750 146,9
14 1818,653 89,6
15 1948,557 22,5
16
Ejercicios Visual Basic para macros en Excel
19. Realice la programación en Visual Basic que automatice la ejecución de:
El principio de Arquímedes establece que:
E
“Todo cuerpo sumergido en el seno de un fluido,
experimenta una fuerza ascendente (empuje) cuyo valor
es igual al peso del fluido desalojado por el cuerpo”
Siendo Vs, el volumen sumergido del cuerpo y dl la densidad del líquido.
Sabemos que el peso de un cuerpo (mc la masa del cuerpo, Vc el
volumen del cuerpo y dc su densidad), se calcula:
El hecho de que un cuerpo flote o se hunda depende de su peso
(hacia abajo), y de la magnitud de empuje hidrostático (hacia
arriba) determinada por el principio de Arquímedes. Ocurriendo que:
Realice una hoja de cálculo donde dados la densidad del líquido,
dl, el área de la base del cuerpo, y su altura, calcule el empuje
que experimenta el cuerpo totalmente sumergido, para densidades
del cuerpo comprendidas entre dc=0.1gr/cm3 y la densidad del
líquido, dl, en el que se encuentra sumergido tomadas en
incrementos de 0.1.
17
Ejercicios Visual Basic para macros en Excel
Peso del Volumen
dc Empuje SITUACIÓN
cuerpo sumergido
LÍQUIDO 0,1 1960,000 19600,000 flota 2,000
dl 1 0,2 3920,000 19600,000 flota 4,000
0,3 5880,000 19600,000 flota 6,000
0,4 7840,000 19600,000 flota 8,000
0,5 9800,000 19600,000 flota 10,000
CUERPO 0,6 11760,000 19600,000 flota 12,000
Area base 10 0,7 13720,000 19600,000 flota 14,000
Altura 2 0,8 15680,000 19600,000 flota 16,000
Vc 20 0,9 17640,000 19600,000 flota 18,000
1 19600,000 19600,000 se hunde 20,000
GRAVEDAD 980
20. Realice la programación en Visual Basic que automatice la ejecución de:
Una consecuencia de la definición de cos t y sen t es que los puntos
cuyas coordenadas vienen dadas por:
son los vértices de un triángulo equilátero, centrado en el origen, de modo que,
para k= 0 el vértice es (1,0) y su lado opuesto es vertical. Además, los puntos
cuyas coordenadas son:
son los vértices del triángulo anterior rotado un ángulo v alrededor del origen,
en sentido antihorario.
Crear una hoja de Trabajo que dibuje el primer triángulo superpuesto y el
segundo para diferentes valores de v.
Triángulo de partida Triángulo girado
k V X Y X' Y'
0 1 1 0 0,54030231 0,841470985
1 -0,5 0,8660254 -0,9988864 0,04718003
2 -0,5 -0,8660254 0,4585841 -0,888651015
3 1 -2,45E-16 0,54030231 0,841470985
18
Ejercicios Visual Basic para macros en Excel
0,8
0,6
0,4
0,2
Triángulo de partida
0
-1,5 -1 -0,5 0 0,5 1 1,5 Triángulo girado
-0,2
-0,4
-0,6
-0,8
-1
19
Ejercicios Visual Basic para macros en Excel
21. Dibujar el polígono:
x(n) R sen(a n d ) cos(b n)
y(n) R sen(a n d ) sen(b n)
para : n 0,1, 2, ..., 630.
para diferentes valores de R, a, b y d.
R: 8 n X Y
a: 0,5 0 0 0
b: 2 1 -3,320835065 7,256156997
d: 1 2 -0,737937544 -0,854399794
3 -7,508762986 2,185096519
4 0,325239715 -2,211536219
5 -6,296392598 -4,082334315
6 2,782142522 -1,769052946
7 -0,962297209 -6,971464725
8 4,110833134 1,235848982
9 4,246018293 -4,829054828
10 2,122966421 4,749417562
11 5,694059673 0,050401858
12 -2,548424199 5,440622407
13 3,133883537 3,694076358
14 -6,442957006 1,813238842
15 -0,601178999 3,850750598
16 -6,043636995 -3,994880566
17 -2,437489969 1,519772467
18 -0,97905114 -7,588107374
19 -1,709624917 -0,530513128
20 5,27164717 -5,889562929
21 -0,268708393 -0,615715185
22 7,998041461 0,141602919
23 -0,198758561 0,414732303
24 5,079052952 6,095509817
25 -1,526952977 0,415179449
20