Professional Documents
Culture Documents
Apuntes de informtica
Capitulo N 5
3
Univ. Noya Villa Daniel
4
5
76 Programando Macros en Excel
En el cual estn todas las opciones para programar en Excel, para hacer aparecer la
ventana del programador lo nico que haremos ser inserta un Command button.
5.3. Pongmonos a programar.- Hasta este punto ya conocemos lo que es programacin en
Visual y como dijimos arriba en Excel es lo mismo con algunas diferencias que iremos
observando en todos los ejemplos.
5.4. Como se codifica la celda.- Lo nico que debemos conocer es como codificar las celdas en
nuestros Macros para esto veremos la siguiente tabla:
1 2 3
1
2 A
3 B
La letra A esta en la celda (2 , 3) y la letra B en la celda (3 , 1) entonces la notacin es celda
(fila , Columna) y en nuestra macro se anotara de la siguiente manera Cells(f, c)
5.5. Diferencias entre la codificacin en Visual y Macros en Excel.- Como se dijo anteriormente
las diferencias entre estas dos codificaciones son casi nada, a continuacin mostraremos
una tabla con las diferencias entre estas dos codificaciones:
Visual Basic Macros en Excel
Private Sub Command1_Click() Sub Calcular()
Macro # 1: Haremos un macro que calculo el rea entre de dos funciones sin conocer el
punto de interseccin, para el rea nos ayudaremos con la programacin de Simpson 3/8
y para el punto de interseccin nos ayudaremos con la programacin de la regla falsa,
tambin haremos aparecer la tabla respectiva de los dos clculos:
Donde las funciones son:
- Cdigo:
Dim a As Single, b As Single, c As Single, d As Single
Dim i As Single, j As Single
Dim s1 As Double, s2 As Double
Dim dx As Double, area As Double
Dim f1, f2, Mul, f3 As Double
Public Function F(x As Single) As Single
F = (1 / x) - (x ^ 2 - 3 * x)
End Function
Sub Calcular()
Cells(7, 3) = "i"
Cells(7, 4) = "a"
Cells(7, 5) = "F(a)"
Cells(7, 6) = "b"
Cells(7, 7) = "F(b)"
Cells(7, 8) = "m"
Cells(7, 9) = "F(m)"
Cells(7, 10) = "mul"
Cells(7, 11) = "Condicion 1"
Cells(7, 12) = "Condicion 2"
- Cdigo:
Dim p As Single
Dim i As Single, j As Single, k As Single
Dim fr(1 To 100, 1 To 100) As Double
Dim fs(1 To 100, 1 To 100) As Double
Dim fx(1 To 100, 1 To 100) As Double
Sub CalFlex()
p = Val(Cells(2, 4))
If p > 0 Then
For i = 1 To p
For j = 1 To p
fr(i, j) = Val(InputBox("m(" + Str(i) + "," + Str(j) + ")=", "Matriz
de flexivilidad"))
Cells(5 + i, 1 + j) = Format(fr(i, j))
Next j
Next i
Cells(5, 2) = "Matriz de flexion"
For i = 1 To p
For j = 1 To 1
fs(i, j) = Val(InputBox("f(" + Str(i) + "," + Str(j) + ")=", "Matriz
de fuerzas"))
Cells(i + 5, p + j + 2) = Format(fs(i, j))
Next j
Next i
For i = 1 To p
For j = 1 To 1
fx(i, j) = 0
For k = 1 To p
fx(i, j) = fx(i, j) + fr(i, k) * fs(k, j)
Cells(i + 5, p + j + 4) = Format(fx(i, j))
Next k
80 Programando Macros en Excel
Next j
Next i
Cells(5, 8) = "Flexiones"
End Sub
Sub CalcFuer()
p = Val(Cells(2, 4))
If p > 0 Then
For i = 1 To p
For j = 1 To p
fr(i, j) = Val(InputBox("m(" + Str(i) + "," + Str(j) + ")=", "Matriz
de flexivilidad"))
Cells(5 + i, 1 + j) = Format(fr(i, j))
Next j
Next i
Cells(5, 2) = "Matriz de rigidez"
For i = 1 To p
For j = 1 To 1
fs(i, j) = Val(InputBox("f(" + Str(i) + "," + Str(j) + ")=", "Matriz
de fuerzas"))
Cells(i + 5, p + j + 2) = Format(fs(i, j))
Next j
Next i
Cells(5, 6) = "Flexiones"
Else
MsgBox "P no puede ser menor que uno", vbCritical, "Control"
End If
For i = 1 To p
For j = 1 To 1
fx(i, j) = 0
For k = 1 To p
fx(i, j) = fx(i, j) + fr(i, k) * fs(k, j)
Cells(i + 5, p + j + 4) = Format(fx(i, j))
Next k
Next j
Next i
Cells(5, 8) = "Fuerzas"
End Sub
5.7. Recomendaciones.- Al intentar programar o hacer Macros en Excel les aconsejo siempre
Univ. Noya Villa Daniel
estar lo ms tranquilo posible y concentrados ya que vern que programar es una de las
tareas ms sencillas, ya que lo nico que debemos saber son los lenguajes de codificacin.