Está en la página 1de 31

mailxmail - Cursos para compartir lo que sabes

Manual de Visual Basic Intermedio


Autor: Jorge Alvarez

mailxmail - Cursos para compartir lo que sabes

Presentacin del curso


Esta es la segunda parte del Manual de Visual Basic Principiante. Con l podrs superar el nivel que adquiriste al realizar el primero y, por lo tanto, conseguir trabajar con este programa con total autonoma.

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 imgenes y tres lneas. 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 tamao y color del contenido y Alignment 2-Center En Word crea las caritas y colcalas dentro de los cuadros de imgenes con su propiedad Stretch en True, las lneas hazlas ms gruesas en BorderWidth 3 y BorderColor azul. Vamos a crear un procedimiento para generar al azar los nmeros: 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 cdigo: 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 cdigo: Private Sub Form_Load() Randomize Call azar Image1.Visible = False Image2.Visible = False End Sub

mailxmail - Cursos para compartir lo que sabes


El botn Otra Suma Private Sub Command1_Click() Call azar Text1.Text = "" Label3.Caption = "" Image1.Visible = False Image2.Visible = False End Sub El botn 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 botn Salir Private Sub Command3_Click() Unload Me End End Sub

mailxmail - Cursos para compartir lo que sabes

2. Ejercicio 2: Ordenar los Nmeros

Crea un formulario con nueve etiquetas, dos de ellas sern las instrucciones y a las que contendrn los nmeros (seis) cmbiales 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 cdigo: 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

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 botn 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 botn 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 botn Salir

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

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 cdigo: El botn 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) & " aos" End Sub El botn Nuevo Clculo Private Sub Command2_Click() Text1 = "" Text2 = "" Text1.SetFocus End Sub El botn Salir Private Sub Command3_Click() Unload Me End End Sub

mailxmail - Cursos para compartir lo que sabes

4. Ejercicio 4: Clculo de Ventas

Crea un formulario con ocho etiquetas, ocho cajas de texto, un control Microsoft Hierarchical FlexGrid (haz clic con el botn derecho del ratn 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 cdigo: 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"

mailxmail - Cursos para compartir lo que sabes


grdmenu.TextArray(14) = "Hot Dog" grdmenu.TextArray(15) = "6.90" End Sub El botn 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 botn Limpiar Private Sub Command2_Click() Text1 = "": Text2 = "" Text3 = "": Text4 = "" Text5 = "": Text6 = "" Text7 = "": Text8 = "" text9 = "": Text1.SetFocus End Sub El botn 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 cdigo: El botn 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 "Revsalos 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 botn Limpiar Private Sub Command2_Click() Text1 = "" Text2 = "" Text3 = "" Text1.SetFocus End Sub El botn 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: Anlisis Numrico

Crea un formulario con cuatro marcos, siete etiquetas, ocho cajas de texto, tres botones y escribe el siguiente cdigo: El botn Anlisis 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 Nmero, El que Quieras pero Introduce Un Nmero", vbCritical, "Aviso Importante"

15

mailxmail - Cursos para compartir lo que sabes


Text1.SetFocus End If End Sub El botn Otro Nmero Private Sub Command2_Click() Text1 = "": Text2 = "" Text3 = "": Text4 = "" Text5 = "": Text6 = "" Text7 = "": Text8 = "" Text1.SetFocus End Sub El botn 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 Nmeros

Crea un formulario con tres marcos, una caja de texto, dos botones de opcin, una caja de lista, cuatro botones y escribe el siguiente cdigo: 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 botn Agregar Private Sub Command1_Click() If IsNumeric(Text1.Text) Then List1.AddItem Text1.Text Text1.Text = "" Text1.SetFocus Else MsgBox "Introduce un Nmero", 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 botn 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 botn Lista Nueva Private Sub Command4_Click() Text1 = "" List1.Clear Text1.SetFocus End Sub El botn 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 cdigo: 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 Tcnico" 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 "Yucatn" 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("Ests 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 botn 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 botn 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 botn Cancelar Private Sub Command3_Click() If MsgBox("Deseas Cancelar Algn 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 botn Salir Private Sub Command4_Click() Unload Me End End Sub

23

mailxmail - Cursos para compartir lo que sabes

9. Ejerciocio 9: Palndromos

Crea un formulario con tres etiquetas, dos cajas de texto, tres botones y escribe el siguiente cdigo: 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 botn Invertir Private Sub Command1_Click() Text2 = cadinvertida(Text1) End Sub El botn Limpiar Private Sub Command2_Click() Text1 = ""

24

mailxmail - Cursos para compartir lo que sabes


Text2 = "" Text1.SetFocus End Sub El botn 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 botn y escribe el siguiente cdigo: Dim total As Double Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Source.Move X, Y End Sub El botn 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 cdigo: El botn Salir Private Sub Command3_Click() Unload Me End End Sub El botn Limpiar Private Sub Command2_Click() Text1 = "" Text2 = "" Text3 = "" Text4 = "" Text5 = "" Text6 = "" Text7 = "" Text8 = "" Text9 = "" Text1.SetFocus End Sub El botn 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: Impresin

Crea un formulario con seis etiquetas, seis cajas de texto, dos botones y escribe el siguiente cdigo: El botn Limpiar Private Sub Command2_Click() Text1 = "" Text2 = "" Text3 = "" Text4 = "" Text5 = "" Text6 = "" Text1.SetFocus End Sub El botn 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

También podría gustarte