Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0
SENTENCIAS DE CONTROL
Las sentencias de control, denominadas tambin estructuras de control, permiten tomar decisiones
y realizar un proceso repetidas veces. Son los denominados bifurcaciones y bucles. Este tipo de
ESIISS: Aprenda Visual Basic 6.0 como si estuviera en Primero pgina 32
[sentencias1]
Case etiq2
[sentencias2]
Case Else
sentenciasn
End Select
donde expresion es una expresin numrica o alfanumrica, y etiq1, etiq2, ... pueden adoptar las
formas siguientes:
1. expresion
2. expresion To expresion
3. Is operador-de-relacin expresion
4. combinacin de las anteriores separadas por comas
Por ejemplo,
Numero = 8 Se inicializan las variable.
Select Case Numero Se va a evaluar la variable Numero.
Case 1 To 5 ' Numero est entre 1 y 5.
Resultado = "Se encuentra entre 1 y 5"
' Lo siguiente se ejecuta si es True la expresin.
Case 6, 7, 8 ' Numero es uno de los tres valores.
Resultado = "Se encuentra entre 6 y 8"
Case Is = 9 , Is = 10 ' Numero es 9 10.
Resultado = "El valor es 9 o 10"
Case Else ' Resto de valores.
Resultado = "El nmero no se encuentra entre 1 y 10"
End Select
Cuando se ejecuta una sentencia For, primero se asigna el valor de la expresion1 a la variable
y se comprueba si su valor es mayor o menor que la expresion2. En caso de ser menor se ejecutan
las sentencias, y en caso de ser mayor el control del programa salta a las lneas a continuacin de
Next. Todo esto sucede en caso de ser la expresion3 positiva. En caso contrario se ejecutarn las
sentencias cuando la variable sea mayor que expresion2. Una vez ejecutadas las sentencias, la
variable se incrementa en el valor de la expresion3, o en 1 si Step no se especifica, volvindose a
efectuar la comparacin entre la variable y la expresion2, y as sucesivamente.
La sentencia Exit For es opcional y permite salir de un bucle For ... Next antes de que ste
finalice. Por ejemplo,
MyString="Informtica "
For Words = 3 To 1 Step -1 ' 3 veces decrementando de 1 en 1.
For Chars = Words To Words+4 '5 veces.
La sentencia opcional Exit Do permite salir de una bucle Do ... Loop antes de que finalice
ste. Por ejemplo,
Check = True Se inicializan las variables.
Counts = 0
Do ' Empieza sin comprobar ninguna condicin.
Do While Counts < 20 ' Bucle que acaba si Counts>=20 o con Exit Do.
Counts = Counts + 1 ' Se incrementa Counts.
If Counts = 10 Then ' Si Counts es 10.
Check = False ' Se asigna a Check el valor False.
Exit Do ' Se acaba el segundo Do.
End If
Loop
Loop Until Check = False ' Salir del "loop" si Check es False.
En el ejemplo mostrado, se sale de los bucles siempre con Counts = 10. Es necesario fijarse
que si se inicializa Counts con un nmero mayor o igual a 10 se entrara en un bucle infinito (el
primer bucle acabara con Counts = 20 pero el segundo no finalizara nunca, bloquendose el
programa y a veces el ordenador).
Sentencia WHILE WEND
Esta sentencia es otra forma de generar bucles que se recorren mientras se cumpla la condicin
inicial. Su estructura es la siguiente:
While condicion
[sentencias]
Wend
Por ejemplo,
Counts = 0 Se inicializa la variable.
While Counts < 20 Se comprueba el valor de Counts.
Counts = Counts + 1 Se incrementa el valor de Counts.
Wend Se acaba el bucle cuando Counts > 19.
Con arrays variable tiene que ser de tipo Variant. Con colecciones variable puede ser Variant
o una variable de tipo Object. Esta construccin es muy til cuando no se sabe el nmero de
elementos que tiene el array o la coleccin de objetos.
Esta es una forma de realizar ejecutables pero, solo encontraran ejecutable de:
administrador de tareas, modo consola, word, bloc de notas y calculadora
Private Sub Cmdadtareas_Click()
valred = Shell("c:\WINDOWS\system32\taskmgr.exe")
End Sub
Private Sub Cmdcalculadora_Click()
valred = Shell("c:\windows\system32\calc.exe")
End Sub
Private Sub Cmdconsola_Click()
valred = Shell("c:\WINDOWS\system32\cmd.exe")
End Sub
Private Sub Cmdnotepad_Click()
valred = Shell("c:\windows\notepad.exe")
End Sub
Private Sub Cmdword_Click()
valred = Shell("C:\Archivos de programa\Microsoft Office\Office12\WINWORD.EXE")
End Sub
Private Sub Siguiente3_Click()
Form3.Hide
Form4.Show
End Sub
Ocultar la barra de tareas
En un mdulo copiar estas lneas:
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName_
As String, ByVal lpWindowName As String) As Long
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter
As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long,_
ByVal wFlags As Long) As Long
Global Ventana As Long
Global Const Muestra = &H40
Global Const Oculta = &H80
En un formulario ponga dos botones y escriba el cdigo correspondiente
a cada uno de ellos:
'Oculta la barra de tareas
Uso de Random:
La funcin Rnd o Random posee la virtud de obtener nmeros aleatorios entre 0 y 1:
El nico inconveniente a la hora de usar Rnd, es que hay que inicializarlo, en otro caso,
el resultado de la funcin Rnd, ser siempre el mismo dentro de un determinado ordenador.
Por ejemplo, el cdigo:
Private Sub Form_Load()
Dim Num As Double
Num = Rnd
MsgBox Num
End Sub
Nos dara como resultado siempre el mismo nmero.
Para solucionar este problema, debemos escribir la sentencia Randomize antes de llamar
a la funcin Rnd. De esta manera, la funcin Rnd actuar correctamente.
El cdigo quedara as:
Private Sub Form_Load()
Dim Num As Double
Randomize
Num = Rnd
MsgBox Num
End Sub
Nota: Colocar los controles en cualquier posicin de la pantalla y no colocarles nada en el Caption ni el tamao ni nada, ya
que se hace por cdigo, es decir se les asigna el caption y se redimensionan en tiempo de ejecucin .
Pegar el cdigo en el formulario
Option Explicit
For i = 1 To 10
Load cmdOpcion(i)
cmdOpcion(i).Visible = True
Next
Case 2
Call GuardarArchivo
'Opcin Para cortar el Texto del RichTexBox Seleccionado
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 3
'Pegamos en el portapapeles de windows con ClipBoard
Clipboard.SetText RichTextBox.SelText
'Eliminamos lo seleccionado en el RichTextBox
RichTextBox.SelText = ""
'Copiar al Clipboard
'''''''''''''''''''''''''
Case 4
Clipboard.SetText RichTextBox.SelText
'Pegar el contenido del portapapeles en el RichTextBox
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Case 5
RichTextBox.SelText = Clipboard.GetText
'Texto en negrita con la propiedad SelBold
''''''''''''''''''''''''''''''''''''''''''''
Case 6
RichTextBox.SelBold = Not RichTextBox.SelBold
' Aplica Italic al texto seleccionado
''''''''''''''''''''''''''''''''''''''''
Case 7
RichTextBox.SelItalic = Not RichTextBox.SelItalic
' Aplica Underline al texto seleccionado
'''''''''''''''''''''''''''''''''''''''''
Case 8
' Texto en cursiva
RichTextBox.SelUnderline = Not RichTextBox.SelUnderline
' Imprimir el contenido del RichTextBox
'''''''''''''''''''''''''''''''''''''''''
Case 9
'Titulo del dilogo Imprimir
CommonDialog.DialogTitle = "Seleccionar impresora"
' Abre el commondialog para seleccionar impresora
CommonDialog.ShowPrinter
' imprimimos el archivo
RichTextBox.SelPrint CommonDialog.PrinterDefault, rtfText
Exit Sub
men:
If Err.Number = 424 Then Resume Next
End Sub
With CommonDialog
.DialogTitle = "Abrir Archivo"
' Extenciones del Commondialog
.Filter = FILTRO_EXTENSIONES
' Abrimos el Commondialog
.ShowOpen
End With
End Sub
End Sub
Tipos de mensaje
Constante
VbOKOnly
VbOKCancel
VbAbortRetryIgnore
Valor
0
1
2
Descripcin
Muestra solamente el botn Aceptar.
Muestra los botones Aceptar y Cancelar.
Muestra los botones Anular, Reintentar e Ignorar.
VbYesNoCancel
VbYesNo
VbRetryCancel
VbCritical
VbQuestion
VbExclamation
VbInformation
VbDefaultButton1
VbDefaultButton2
VbDefaultButton3
VbDefaultButton4
VbApplicationModal
3
4
5
16
32
48
64
0
256
512
768
0
aplicacin actual.
VbSystemModal
4096
VbMsgBoxHelpButton
VbMsgBoxSetForeground
16384
65536
VbMsgBoxRight
VbMsgBoxRtlReading
524288
1048576
Los valores devueltos por la funcin segn la respuesta proporcionada por el usuario se muestran en la siguiente
tabla:
Constante
vbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
Valor
1
2
3
4
5
6
7
Descripcin
Aceptar
Cancelar
Anular
Reintentar
Ignorar
S
No
Ejemplos
Muestra un mensaje en un cuadro de dilogo sencillo con los botones Si y No, y el icono de mensaje critico.
Dim respuesta
respuesta = MsgBox("Esta seguro que desea formatear su computador?", vbYesNo + vbCritical + vbDefaultButton2,
"Formatear Disco")
Selecciona la respuesta del usuario.
If respuesta = vbYes Then
MsgBox ("Usted selecciono la respuesta S.")
End If
If respuesta = vbNo Then
MsgBox ("Usted selecciono la respuesta No.")
End If
Muestra un mensaje en un cuadro de dilogo personalizado con los botones, si, no y cancelar.
En el cuadro se muestra el icono de mensaje de advertencia.
Dim respuesta
respuesta = MsgBox("Desea guardar los cambios en el documento?", vbYesNoCancel + vbExclamation +
vbDefaultButton1, "Editor")
Selecciona la respuesta del usuario.
If respuesta = vbYes Then
MsgBox ("Usted selecciono la respuesta S.")
End If
Significado
Suma
Resta
Multiplicacin
Divisin
Divisin entera
Mdulo o Resto
Exponenciacin
Ejemplo
a+b
ab
a*b
a/b
a\b
a mod b
a^b
Resultado
Suma de a y b.
Diferencia entre a y b.
Producto de a por b.
Cociente de a sobre b.
Cociente entero de a sobre b.
Resto de a sobre b.
Potencia de a elevado a b.
Operador
>
<
=
>=
<=
<>
Significado
Mayor que
Menor que
Igual a
Mayor o igual que
Menor o igual que
Distinto a
Equivalente matemtico
>
<
=
5>3
Devuelve verdadero (true)
3 = 2 +1 Devuelve verdadero (true)
2 <> 1+1
Devuelve falso (false)
8<5
Devuelve falso (false)
A < B
Devuelve verdadero (true)
Z < H
Devuelve falso (false)
Operadores lgicos
Se utilizan para combinar las expresiones lgicas, es decir, que nos permiten evaluar ms de una expresin lgica a la vez.
Los operadores AND, OR y NOT trabajan con operandos que son expresiones lgicos.
Su formato es:
[Operando 1] operador lgico [Operando 2] operador lgico [Operando N]
Donde:
operando1, operando2 y operandoN pueden ser cualquier expresin lgica.
CODIGOS IMPORTANTES
COMANDO PARA LIMPIAR FORMULARIO
Form1.Cls
COMANDO PARA LIMPIAR TEXTO
Text1.Text =
Text2.Text =
Text3.Text =
Comando Separador de caracteres
" & vbCrLf & _ "
MsgBox "Observa este texto que ocupa" & _
vbCrLf & "tres lneas", , "Aqui va el titulo que aparecera en la barra de titulos"
El guion bajo nos sirve para continuar esccribiendo en la siguiente linea.
Constantes para los iconos Valor Numrico Significado
vbCritical 16 Icono crtico
Next
OPERACIONES AL EVENTO CLIC
Private Sub Label12_Click()
If Text1 >= "0" And Text2 >= "0" Then
Text3 = Val(Text2) * 100 / Val(Text1)
Else
MsgBox "Introdusca datos mayores >= a cero", vbCritical, "Error"
End If
End Sub
BARRA de PROGreso
Private Sub Timer1_Timer()
'Verifica si la anchura del primer Picture es menor que la anchura de su contenedor. Si es menor se 'incrementa.
If Picture2.Width < Picture1.Width Then
Picture2.Width = Picture2.Width + 2 'Incrementa el segundo Picture.
Else
MsgBox "Analisis Completo", vbInformation, "Analisis"
Windows_Virtual.Show vbModal
End If
End Sub
Codigo que desactiva una tecla
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyQ Then
MsgBox "Caracter no permitido", vbCritical, "Error"
End If
End Sub
Pulsar una tecla y pone un color
Private Sub Command1_KeyUp(KeyCode As Integer, Shift As Integer)
'Pone el color por defecto del botn de comando
Command1.BackColor = vbButtonFace
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Si se pulsa la tecla R
End If
'Si se pulsa la tecla N
If KeyCode = vbKeyN Then
Command1.BackColor = vbBlack
End If
'Si se pulsa la tecla B
If KeyCode = vbKeyB Then
Command1.BackColor = vbWhite
End If
End If
End Sub
'Muestra un mensaje cuando se pulsa la tecla F1.
? Busque la propiedad KeyPress y establezca el valor True.
? Haga doble clic sobre el formulario.
? Seleccione el evento KeyDown del formulario y escriba el siguiente bloque de cdigo:
If KeyCode = vbKeyF1 Then
MsgBox ("Usted presiono la tecla F1.")
End If
'Sale del programa si se pulsa la tecla S.
If KeyCode = vbKeyS Then
End
End If
Pulsar una tecla y mostrar la tecla presioneda
? Busque la propiedad KeyPress y establezca el valor True.
? Haga doble clic sobre el formulario.
? Seleccione el evento KeyDown del formulario y escriba el siguiente bloque de cdigo
S 6 vbYes
No 7 vbNo
CODIGOS PARA CADENA DE CARACTERES
Private Sub cmdIfBis_Click()
Dim sexo As String * 1
sexo = InputBox("Escribe tu sexo (solo la inicial: H o V)")
If sexo = "H" Or sexo = "h" Then
MsgBox "Hola chica"
ElseIf sexo = "V" Or sexo = "v" Then
MsgBox "Hola chico"
Else
MsgBox "Hola sexo ambiguo"
End If
End Sub
COMANDOS PARA MOVER UN OBJETO Label
Private Sub cmdAbajo_Click()
LblMueve.Move LblMueve.Left, LblMueve.Top + 30
End Sub
Private Sub CmdArriba_Click()
LblMueve.Move LblMueve.Left, LblMueve.Top - 30
End Sub
Private Sub CmdDerecha_Click()
LblMueve.Move LblMueve.Left + 30
End Sub
Private Sub CmdIzquierda_Click()
LblMueve.Move LblMueve.Left - 30
End Sub
COMANDOS PARA TEXTO TIPO DE LETRA Y TAMANIO
Private Sub BotonArial_Click()
Texto.FontName = "Arial"
End Sub
Private Sub BotonAumentarTamao_Click()
Texto.FontSize = Texto.FontSize + 4
End Sub
Private Sub BotonCourier_Click()
Texto.FontName = "Courier"
End Sub
Private Sub BotonCursiva_Click()
Texto.FontItalic = Not Texto.FontItalic
End Sub
Private Sub BotonNegrita_Click()
Texto.FontBold = Not Texto.FontBold
End Sub
Private Sub BotonReducirTamao_Click()
Texto.FontSize = Texto.FontSize - 4
End Sub
Private Sub BotonSubrayada_Click()
Texto.FontUnderline = Not Texto.FontUnderline
End Sub
Private Sub BotonTachada_Click()
Texto.FontStrikethru = Not Texto.FontStrikethru
End Sub
Comparte este libro con todos y cada uno de tus amigos de forma automtica,
mediante la seleccin de cualquiera de las opciones de abajo:
http://espanol.free-ebooks.net/tos.html