Manual de Visual Basic Intermedio Autor: Jorge Alvarez

Anuncio
mailxmail - Cursos para compartir lo que sabes
Manual de Visual Basic
Intermedio
Autor: Jorge Alvarez
1
mailxmail - Cursos para compartir lo que sabes
Presentación del curso
Esta es la segunda parte del Manual de Visual Basic Principiante. Con él podrás
superar el nivel que adquiriste al realizar el primero y, por lo tanto, conseguir
trabajar con este programa con total autonomía.
2
mailxmail - Cursos para compartir lo que sabes
1. Ejercicio1: Aprende a Sumar
Crea un formulario con cinco etiquetas, una caja de texto, tres botones, dos
imágenes y tres líneas. Modifica las propiedades de las etiquetas de las cantidades y
la de la palabra de resultado como sigue: BackColor blanco y Border Style 1-Fixed
Single. Usa Font y ForeColor para el tamaño y color del contenido y Alignment
2-Center
En Word crea las caritas y colócalas dentro de los cuadros de imágenes con su
propiedad Stretch en True, las líneas hazlas más gruesas en BorderWidth 3 y
BorderColor azul.
Vamos a crear un procedimiento para generar al azar los números:
Haz doble clic en el formulario. Haz clic en Tools (Herramientas)/Add Procedure
(Agregar Procedimiento). En Add Procedure escribe el nombre del procedimiento, en
este caso Azar y haz clic en Aceptar. Ahora escribe el código:
Public Sub azar()
n1 = Int(Rnd * 10) + 1
n2 = Int(Rnd * 10) + 1
Label1.Caption = n1
Label2.Caption = n2
End Sub
Haz doble clic en el formulario y escribe el siguiente código:
Private Sub Form_Load()
Randomize
Call azar
Image1.Visible = False
Image2.Visible = False
End Sub
3
mailxmail - Cursos para compartir lo que sabes
El botón Otra Suma
Private Sub Command1_Click()
Call azar
Text1.Text = ""
Label3.Caption = ""
Image1.Visible = False
Image2.Visible = False
End Sub
El botón Revisar
Private Sub Command2_Click()
If Val(Text1) = Val(Label1) + Val(Label2) Then
Label3.Caption = "Bien"
Image1.Visible = True
Else
Label3.Caption = "Mal"
Image1.Visible = False
Image2.Visible = True
End If
End Sub
El botón Salir
Private Sub Command3_Click()
Unload Me
End
End Sub
4
mailxmail - Cursos para compartir lo que sabes
2. Ejercicio 2: Ordenar los Números
Crea un formulario con nueve etiquetas, dos de ellas serán las instrucciones y a las
que contendrán los números (seis) cámbiales su Propiedad Alignment a 2-Center,
BackColor blanco, BorderStyle a 1-Fixed Single y tres botones, ahora
Introduce las siguientes declaraciones
Haz doble clic en el formulario En la caja de combo de la esquina superior izquierda
selecciona (General) Y escribe: Dim n1, n2, n3 As Integer (presiona Enter al terminar)
Ahora crea un procedimiento:
Haz doble clic en el formulario. Haz clic en Herramientas (Tools)/Agregar
Procedimiento (Add Procedure). En Agregar Procedimiento escribe el nombre del
Procedimiento (en este caso azar) y haz clic en Aceptar. Ahora escribe el siguiente
código:
Public Sub azar()
n1 = Int(Rnd * 10) + 1
n2 = Int(Rnd * 10) + 1
n3 = Int(Rnd * 10) + 1
If n1 <> n2 And n2 <> n3 And n1 <> n3 Then
Label1.Caption = n1
Label2.Caption = n2
Label3.Caption = n3
Else
Exit Sub
End If
End Sub
La etiqueta 4
Private Sub Label4_DragDrop(Source As Control, X As Single, Y As Single)
Label4.Caption = Source
Source.Visible = False
End Sub
La etiqueta 5
5
mailxmail - Cursos para compartir lo que sabes
Private Sub Label5_DragDrop(Source As Control, X As Single, Y As Single)
Label5.Caption = Source
Source.Visible = False
End Sub
La etiqueta 6
Private Sub Label6_DragDrop(Source As Control, X As Single, Y As Single)
Label6.Caption = Source
Source.Visible = False
End Sub
El botón Iniciar
Private Sub Command1_Click()
Label4.Caption = ""
Label5.Caption = ""
Label6.Caption = ""
Label7.Caption = ""
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Call azar
End Sub
El botón Resultado
Private Sub Command2_Click()
If Val(Label4.Caption) < Val(Label5.Caption) And Val(Label5.Caption) <
Val(Label6.Caption) Then
Label7.Caption = "Bien"
Else
Label7.Caption = "Mal"
End If
End Sub
El botón Salir
6
mailxmail - Cursos para compartir lo que sabes
Private Sub Command3_Click()
Unload Me
End
End Sub
El formulario
Private Sub Form_Load()
Randomize
Call azar
End Sub
7
mailxmail - Cursos para compartir lo que sabes
3. Ejercicio 3: Calcular la edad
Crea un formulario con dos etiquetas, dos cajas de texto y tres botones, escribe el
siguiente código:
El botón Calcular la Edad
Private Sub Command1_Click()
Dim fecnac As Date, edad As Integer
fecnac = CDate(Text1)
edad = CInt((Date - fecnac) / 365)
Text2 = Str(edad) & " años"
End Sub
El botón Nuevo Cálculo
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text1.SetFocus
End Sub
El botón Salir
Private Sub Command3_Click()
Unload Me
End
End Sub
8
mailxmail - Cursos para compartir lo que sabes
4. Ejercicio 4: Cálculo de Ventas
Crea un formulario con ocho etiquetas, ocho cajas de texto, un control Microsoft
Hierarchical FlexGrid (haz clic con el botón derecho del ratón sobre la caja de
herramientas y haz clic en Componentes, selecciona la casilla Microsoft Hierarchical
FlexGrid Control 6.0 y haz clic en Aceptar) tres botones y escribe el siguiente código:
Doble clic sobre el formulario
Private Sub Form_Load()
grdmenu.Cols = 2
grdmenu.Rows = 8
grdmenu.FixedCols = 0
grdmenu.FixedRows = 1
grdmenu.TextArray(0) = "Menú"
grdmenu.TextArray(1) = "Precio"
grdmenu.TextArray(2) = "Burrito"
grdmenu.TextArray(3) = "9.50"
grdmenu.TextArray(4) = "Burger"
grdmenu.TextArray(5) = "12.75"
grdmenu.TextArray(6) = "Torta"
grdmenu.TextArray(7) = "8.25"
grdmenu.TextArray(8) = "Refresco"
grdmenu.TextArray(9) = "4.00"
grdmenu.TextArray(10) = "Cerveza"
grdmenu.TextArray(11) = "15.60"
grdmenu.TextArray(12) = "Ensalada"
grdmenu.TextArray(13) = "14.45"
9
mailxmail - Cursos para compartir lo que sabes
grdmenu.TextArray(14) = "Hot Dog"
grdmenu.TextArray(15) = "6.90"
End Sub
El botón Aceptar
Private Sub Command1_Click()
Dim burrito As Integer, burger As Integer
Dim torta As Integer, refresco As Integer
Dim cerveza As Integer, ensalada As Integer
Dim hotdog As Integer, ventatotal As Double
burrito = Val(Text1)
burger = Val(Text2)
torta = Val(Text3)
refresco = Val(Text4)
cerveza = Val(Text5)
ensalada = Val(Text6)
hotdog = Val(Text7)
ventatotal = burrito * 9.5 + burger * 12.75 + torta * 8.25 + refresco * 4.60 +
cerveza * 15.6 + ensalada * 14.45 + hotdog * 6.9
Text8 = Str(ventatotal)
End Sub
El botón Limpiar
Private Sub Command2_Click()
Text1 = "": Text2 = ""
Text3 = "": Text4 = ""
Text5 = "": Text6 = ""
Text7 = "": Text8 = ""
text9 = "": Text1.SetFocus
End Sub
El botón Salir
Private Sub Command3_Click()
10
mailxmail - Cursos para compartir lo que sabes
Unload Me
End
End Sub
11
mailxmail - Cursos para compartir lo que sabes
5. Ejercicio 5: Fecha Escrita
Crea un formulario con cinco etiquetas, tres cajas de texto, un marco, tres botones y
escribe el siguiente código:
El botón Convertir
Private Sub Command1_Click()
Dim cadmes As String, mes As Integer
mes = Val(Text2)
Select Case mes
Case 1: cadmes = "Enero"
Case 2: cadmes = "Febrero"
Case 3: cadmes = "Marzo"
Case 4: cadmes = "Abril"
Case 5: cadmes = "Mayo"
Case 6: cadmes = "Junio"
Case 7: cadmes = "Julio"
Case 8: cadmes = "Agosto"
Case 9: cadmes = "Septiembre"
Case 10: cadmes = "Octubre"
Case 11: cadmes = "Noviembre"
Case 12: cadmes = "Diciembre"
Case Else
MsgBox "Revísalos Por Favor", vbCritical, "Hay un Error en los Datos...!!!"
Call Command2_Click
Exit Sub
12
mailxmail - Cursos para compartir lo que sabes
Exit Sub
End Select
Label4 = Text1 & " de " & cadmes & " de " & Text3
End Sub
El botón Limpiar
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text1.SetFocus
End Sub
El botón Salir
Private Sub Command3_Click()
If MsgBox("¿Ya Quieres Salir del Programa?", vbQuestion + vbYesNo, "Tengo una
Pregunta para Ti") = vbYes Then
End
Else: Call Command2_Click
End If
End Sub
13
mailxmail - Cursos para compartir lo que sabes
6. Ejercicio 6: Análisis Numérico
Crea un formulario con cuatro marcos, siete etiquetas, ocho cajas de texto, tres
botones y escribe el siguiente código:
El botón Análisis
Private Sub Command1_Click()
If IsNumeric(Text1) Then
Dim s As Integer, si As Integer, sp As Integer
Dim may As Integer, min As Integer
Dim cad As String
Dim i As Integer, j As Integer
n = CLng(Text1)
m = CLng(Text1)
cad = ""
i = 0
j = 1
s = sp = si = 0
For j = 1 To n
If (n Mod j = 0) Then
cad = cad & j & vbCrLf
End If
Next j
14
mailxmail - Cursos para compartir lo que sabes
While (n > 0)
If ((n Mod 10) Mod 2) = 0 Then
sp = sp + (n Mod 10)
Else
si = si + (n Mod 10)
End If
s = s + (n Mod 10)
n = n \ 10
i = i + 1
Wend
may = Mid(Text1, 1, 1)
men = may
While (m > o)
If may < (m Mod 10) Then
may = m Mod 10
End If
If men > (m Mod 10) Then
men = m Mod 10
End If
m = m \ 10
Wend
Text2 = Str(i)
Text3 = Str(si)
Text4 = Str(sp)
Text5 = Str(s)
Text6 = Str(may)
Text7 = Str(men)
Text8 = cad
Else
MsgBox "Debes Introducir un Número, El que Quieras pero Introduce Un Número",
vbCritical, "Aviso Importante"
15
mailxmail - Cursos para compartir lo que sabes
Text1.SetFocus
End If
End Sub
El botón Otro Número
Private Sub Command2_Click()
Text1 = "": Text2 = ""
Text3 = "": Text4 = ""
Text5 = "": Text6 = ""
Text7 = "": Text8 = ""
Text1.SetFocus
End Sub
El botón Salir
Private Sub Command3_Click()
If MsgBox("¿Deseas Cerrar el Programa?", vbQuestion + vbYesNo, "Aviso Antes de
Cerrar el Programa") = vbYes Then
End
Else
Cancel = True
Text1.SetFocus
End If
End Sub
16
mailxmail - Cursos para compartir lo que sabes
7. Ejercicio 7: Lista de Números
Crea un formulario con tres marcos, una caja de texto, dos botones de opción, una
caja de lista, cuatro botones y escribe el siguiente código:
Haz doble clic en el formulario y escribe:
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("¿Cerramos el Programa?", vbQuestion + vbYesNo, "¿Ya nos Vamos?") =
vbYes Then
End
Else: Cancel = True: Text1.SetFocus
End If
End Sub
El botón Agregar
Private Sub Command1_Click()
If IsNumeric(Text1.Text) Then
List1.AddItem Text1.Text
Text1.Text = ""
Text1.SetFocus
Else
MsgBox "Introduce un Número", vbCritical, "Por Favor"
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Text1.SetFocus
End If
End Sub
17
mailxmail - Cursos para compartir lo que sabes
El botón Ordenar
Private Sub Command2_Click()
Dim i As Integer, j As Integer, t As Integer, n As Integer
Dim a() As Integer
n = List1.ListCount
ReDim a(n)
For i = 0 To n - 1
a(i) = List1.List(i)
Next i
If Option1.Value Then
For i = 0 To n - 2
For j = i + 1 To n - 1
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
End If
Text1.SetFocus
If Option2.Value Then
For i = 0 To n - 2
For j = i + 1 To n - 1
If a(i) < a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
18
mailxmail - Cursos para compartir lo que sabes
End If
List1.Clear
For i = 0 To n - 1
List1.List(i) = a(i)
Next i
Text1.SetFocus
End Sub
El botón Lista Nueva
Private Sub Command4_Click()
Text1 = ""
List1.Clear
Text1.SetFocus
End Sub
El botón Salir
Private Sub Command3_Click()
If MsgBox("¿Seguro que Quieres Cerrar el Programa?", vbQuestion + vbYesNo, "¿Ya
es Hora de Irnos?") = vbYes Then
End
Else: Cancel = True: Text1.SetFocus
End If
End Sub
19
mailxmail - Cursos para compartir lo que sabes
8. Ejercicio 8: Registro de Cursos
Crea un formulario con cuatro marcos, seis etiquetas, cinco cajas de texto, un
cuadro combinado, dos cajas de lista, cuatro botones y escribe el siguiente código:
Private Sub Form_Load()
List1.AddItem "Intro. a Sistemas"
List1.AddItem "Windows"
List1.AddItem "MS Word"
List1.AddItem "MS Excel"
List1.AddItem "MS PowerPoint"
List1.AddItem "MS Access"
List1.AddItem "Soporte Técnico"
List1.AddItem "Redes"
List1.AddItem "MS Visual Basic"
List1.AddItem "Internet"
List2.AddItem "Chihuahua"
List2.AddItem "Campeche"
List2.AddItem "Veracruz"
List2.AddItem "Colima"
List2.AddItem "Yucatán"
List2.AddItem "Sonora"
List2.AddItem "Sinaloa"
20
mailxmail - Cursos para compartir lo que sabes
List2.AddItem "Puebla"
List2.AddItem "Tabasco"
List2.AddItem "Zacatecas"
Combo1.AddItem "Masculino"
Combo1.AddItem "Femenino"
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("¿Estás Seguro de Querer Cerrar el Programa?", vbQuestion + vbYesNo,
"¿Oye qué pasa contigo?") = vbYes Then
End
Else
Cancel = True
End If
End Sub
Private Sub List1_Click()
Text1 = List1
End Sub
Private Sub List2_Click()
Text5 = List2
End Sub
El botón Guardar
Private Sub Command1_Click()
List1.Enabled = False
List2.Enabled = False
Text1.Locked = True
Text2.Locked = True
Combo1.Locked = True
Text4.Locked = True
Text5.Locked = True
MsgBox "Este Alumno ha sido Matriculado", vbInformation, "Mensaje Importante"
21
mailxmail - Cursos para compartir lo que sabes
End Sub
El botón Limpiar
Private Sub Command2_Click()
List1.Enabled = True
List2.Enabled = True
Text1.Locked = False
Text2.Locked = False
Text3.Locked = False
Combo1.Locked = False
Text4.Locked = False
Text5.Locked = False
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
Text4 = ""
Text5 = ""
Text1.SetFocus
End Sub
El botón Cancelar
Private Sub Command3_Click()
If MsgBox("Deseas Cancelar Algún Dato?", vbQuestion + vbYesNo, "Aviso Muy
Importante") = vbYes Then
List1.Enabled = True
List2.Enabled = True
Text1.Locked = False
Text2.Locked = False
Text3.Locked = False
Combo1.Locked = False
Text4.Locked = False
Text5.Locked = False
22
mailxmail - Cursos para compartir lo que sabes
End If
End Sub
El botón Salir
Private Sub Command4_Click()
Unload Me
End
End Sub
23
mailxmail - Cursos para compartir lo que sabes
9. Ejerciocio 9: Palíndromos
Crea un formulario con tres etiquetas, dos cajas de texto, tres botones y escribe el
siguiente código:
Function cadinvertida(cadena As String) As String
Dim invertida() As String * 1
Dim i As Integer
Dim j As Integer
n = Len(cadena)
ReDim invertida(n)
For i = 1 To n
invertida(i - 1) = Mid(cadena, i, 1)
Next i
For j = (n - 1) To 0 Step -1
cadinvertida = cadinvertida & invertida(j)
Next j
End Function
El botón Invertir
Private Sub Command1_Click()
Text2 = cadinvertida(Text1)
End Sub
El botón Limpiar
Private Sub Command2_Click()
Text1 = ""
24
mailxmail - Cursos para compartir lo que sabes
Text2 = ""
Text1.SetFocus
End Sub
El botón Salir
Private Sub Command3_Click()
Unload Me
End
End Sub
25
mailxmail - Cursos para compartir lo que sabes
10. Ejercicio 10: Inter Compras Net
Crea un formulario con siete etiquetas, cinco cuadros image, un botón y escribe el
siguiente código:
Dim total As Double
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End Sub
El botón Cuenta Nueva
Private Sub Command1_Click()
Label7 = ""
total = o
End Sub
Private Sub Image5_DragDrop(Source As Control, X As Single, Y As Single)
If Source = Image1 Then
total = total + 250#
ElseIf Source = Image2 Then
total = total + 375#
ElseIf Source = Image3 Then
total = total + 400#
ElseIf Source = Image4 Then
total = total + 500#
End If
26
mailxmail - Cursos para compartir lo que sabes
End If
Label7 = "$" & total & ".00"
End Sub
27
mailxmail - Cursos para compartir lo que sabes
11. Ejercicio 11: Calificaciones
Crea un formulario con ocho etiquetas, nueve cajas de texto, tres botones ye escribe
el siguiente código:
El botón Salir
Private Sub Command3_Click()
Unload Me
End
End Sub
El botón Limpiar
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text5 = ""
Text6 = ""
Text7 = ""
Text8 = ""
Text9 = ""
Text1.SetFocus
End Sub
El botón Prom. Gral. Redondeado
28
mailxmail - Cursos para compartir lo que sabes
Private Sub Command1_Click()
Dim n1 As Double, n2 As Double, n3 As Double, n4 As Double, n5 As Double, n6 As
Double
Dim promedio As Integer
n1 = Val(Text2): n2 = Val(Text3)
n3 = Val(Text4): n4 = Val(Text5)
n5 = Val(Text6): n6 = Val(Text7)
promedio = ((n1 + n2 + n3 + n4 + n5 + n6) / 6)
Text8 = Str(promedio)
If promedio >= 9.5 Then
Text9 = "Excelente"
End If
If promedio >= 9 And promedio < 9.5 Then
Text9 = "Muy Bien"
End If
If promedio >= 8.5 And promedio < 9 Then
Text9 = "Bien"
End If
If promedio >= 8 And promedio < 8.5 Then
Text9 = "Regular"
End If
If promedio < 8 Then
Text9 = "Mal"
End If
End Sub
29
mailxmail - Cursos para compartir lo que sabes
12. Ejercicio 12: Impresión
Crea un formulario con seis etiquetas, seis cajas de texto, dos botones y escribe el
siguiente código:
El botón Limpiar
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text5 = ""
Text6 = ""
Text1.SetFocus
End Sub
El botón Imprimir
Private Sub Command1_Click()
Printer.Orientation = 1
Printer.FontSize = 12
Printer.Print
Printer.Print
Printer.Print
Printer.Print Tab(15); Label1.Caption; Tab(30); Text1.Text
Printer.Print
Printer.Print
30
mailxmail - Cursos para compartir lo que sabes
Printer.Print Tab(15); Label2.Caption; Tab(30); Text2.Text
Printer.Print
Printer.Print
Printer.Print Tab(15); Label3.Caption; Tab(30); Text3.Text
Printer.Print
Printer.Print
Printer.Print Tab(15); Label4.Caption; Tab(30); Text4.Text
Printer.Print
Printer.Print
Printer.Print Tab(15); Label5.Caption; Tab(30); Text5.Text
Printer.Print
Printer.Print
Printer.Print Tab(15); Label6.Caption; Tab(30); Text6.Text
Printer.EndDoc
End Sub
31
Descargar