Subido por Fortunato Soria

Instrucciones en Visual Basic

Anuncio
Instrucciones en Visual Basic




Artículo
06/04/2022
Tiempo de lectura: 13 minutos
9 colaboradores
Una instrucción de Visual Basic es una instrucción completa. Puede contener palabras
clave, operadores, variables, constantes y expresiones. Cada instrucción pertenece a una de
las categorías siguientes:


Instrucciones de declaración, que nombren una variable, constante o procedimiento,
y también pueden especificar un tipo de datos.
Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden llamar a
un método o función, y pueden recorrer en bucle o bifurcar bloques de código. Las
instrucciones ejecutables incluyen instrucciones de asignación, que asignan un
valor o una expresión a una variable o constante.
En este tema se describe cada categoría. Además, en este tema se describe cómo combinar
varias instrucciones en una sola línea y cómo continuar una instrucción en varias líneas.
Instrucciones de declaración
Las instrucciones de declaración se usan para nombrar y definir procedimientos, variables,
propiedades, matrices y constantes. Al declarar un elemento de programación, también
puede definir su tipo de datos, nivel de acceso y ámbito. Para obtener más información,
vea Características de los elementos declarados.
El ejemplo siguiente contiene tres declaraciones.
VBCopiar
Public Sub ApplyFormat()
Const limit As Integer = 33
Dim thisWidget As New widget
' Insert code to implement the procedure.
End Sub
La primera declaración es la Sub instrucción . Junto con su instrucción de End
Sub coincidencia, declara un procedimiento denominado applyFormat. También especifica
que es applyFormat , lo Publicque significa que cualquier código que pueda hacer
referencia a él puede llamarlo.
La segunda declaración es la Const instrucción , que declara la constante limit,
especificando Integer el tipo de datos y un valor de 33.
La tercera declaración es la Dim instrucción , que declara la variable thisWidget. El tipo de
datos es un objeto específico, es decir, un objeto creado a partir de la Widget clase . Puede
declarar que una variable sea de cualquier tipo de datos básico o de cualquier tipo de objeto
que se exponga en la aplicación que está usando.
Valores iniciales
Cuando se ejecuta el código que contiene una instrucción de declaración, Visual Basic
reserva la memoria necesaria para el elemento declarado. Si el elemento contiene un valor,
Visual Basic inicializa en el valor predeterminado para su tipo de datos. Para obtener más
información, vea "Comportamiento" en Dim (Instrucción).
Puede asignar un valor inicial a una variable como parte de su declaración, como se
muestra en el ejemplo siguiente.
VBCopiar
Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.
Si una variable es una variable de objeto, puede crear explícitamente una instancia de su
clase al declararla mediante la palabra clave New Operator , como se muestra en el ejemplo
siguiente.
VBCopiar
Dim f As New System.Windows.Forms.Form()
Tenga en cuenta que el valor inicial especificado en una instrucción de declaración no se
asigna a una variable hasta que la ejecución alcanza su instrucción de declaración. Hasta
ese momento, la variable contiene el valor predeterminado para su tipo de datos.
Instrucciones ejecutables
Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a
otro lugar del código, recorrer en bucle varias instrucciones o evaluar una expresión. Una
instrucción de asignación es un caso especial de una instrucción ejecutable.
En el ejemplo siguiente se usa una If...Then...Else estructura de control para ejecutar
distintos bloques de código basados en el valor de una variable. Dentro de cada bloque de
código, un For...Next bucle se ejecuta un número especificado de veces.
VBCopiar
Public Sub StartWidget(ByVal aWidget As widget,
ByVal clockwise As Boolean, ByVal revolutions As Integer)
Dim counter As Integer
If clockwise = True Then
For counter = 1 To revolutions
aWidget.SpinClockwise()
Next counter
Else
For counter = 1 To revolutions
aWidget.SpinCounterClockwise()
Next counter
End If
End Sub
La If instrucción del ejemplo anterior comprueba el valor del parámetro clockwise. Si el
valor es True, llama al spinClockwise método de aWidget. Si el valor es False, llama
al spinCounterClockwise método de aWidget. La If...Then...Else estructura de control
termina con End If.
El For...Next bucle dentro de cada bloque llama al método adecuado varias veces igual al
valor del revolutions parámetro .
Instrucciones de asignación
Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar
el valor del lado derecho del operador de asignación (=) y almacenarlo en el elemento de la
izquierda, como en el ejemplo siguiente.
VBCopiar
v = 42
En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la
variable v.
Elementos de programación aptos
El elemento de programación del lado izquierdo del operador de asignación debe ser capaz
de aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que
no sea ReadOnly o debe ser un elemento de matriz. En el contexto de una instrucción de
asignación, este elemento a veces se denomina lvalue, para "left value".
El valor del lado derecho del operador de asignación se genera mediante una expresión, que
puede constar de cualquier combinación de literales, constantes, variables, propiedades,
elementos de matriz, otras expresiones o llamadas de función. Esto se ilustra en el siguiente
ejemplo:
VBCopiar
x = y + z + FindResult(3)
En el ejemplo anterior se agrega el valor mantenido en variable y al valor que se mantiene
en la variable zy, a continuación, se agrega el valor devuelto por la llamada a la
función findResult. A continuación, el valor total de esta expresión se almacena en la
variable x.
Tipos de datos en instrucciones de asignación
Además de los valores numéricos, el operador de asignación también puede
asignar String valores, como se muestra en el ejemplo siguiente.
VBCopiar
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
También puede asignar valores Boolean mediante un Boolean literal o
una Boolean expresión, como se muestra en el ejemplo siguiente.
VBCopiar
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
De forma similar, puede asignar los valores adecuados a los elementos de programación
del Chartipo de datos , Dateo Object . También puede asignar una instancia de objeto a un
elemento declarado como de la clase a partir de la que se crea esa instancia.
Instrucciones de asignación compuestas
Las instrucciones de asignación compuesta realizan primero una operación en una
expresión antes de asignarla a un elemento de programación. En el ejemplo siguiente se
muestra uno de estos operadores, +=, que incrementa el valor de la variable en el lado
izquierdo del operador por el valor de la expresión de la derecha.
VBCopiar
n += 1
En el ejemplo anterior se agrega 1 al valor de ny, a continuación, se almacena ese nuevo
valor en n. Es un equivalente abreviado de la instrucción siguiente:
VBCopiar
n = n + 1
Se pueden realizar diversas operaciones de asignación compuesta mediante operadores de
este tipo. Para obtener una lista de estos operadores y más información sobre ellos,
vea Operadores de asignación.
El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de
cadenas ya existentes, como se muestra en el ejemplo siguiente.
VBCopiar
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Conversiones de tipos en instrucciones de asignación
El valor que asigne a un elemento de variable, propiedad o matriz debe ser de un tipo de
datos adecuado para ese elemento de destino. En general, debe intentar generar un valor del
mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden
convertir a otros tipos durante la asignación.
Para obtener información sobre la conversión entre tipos de datos, vea Conversiones de
tipos en Visual Basic. En resumen, Visual Basic convierte automáticamente un valor de un
tipo determinado en cualquier otro tipo al que se amplía. Una conversión de ampliación
es una de las que siempre se realiza correctamente en tiempo de ejecución y no pierde
ningún dato. Por ejemplo, Visual Basic convierte un valor Integer en
cuando Double corresponda, Integer porque amplía a Double. Para obtener más
información, consulta Widening and Narrowing Conversions.
Las conversiones de limitación (las que no se amplían) conllevan un riesgo de error en
tiempo de ejecución o de pérdida de datos. Puede realizar una conversión de limitación
explícitamente mediante una función de conversión de tipos, o bien puede dirigir al
compilador para que realice todas las conversiones implícitamente estableciendo Option
Strict Off. Para obtener más información, vea Conversiones implícitas y explícitas.
Colocar varias instrucciones en una línea
Puede tener varias instrucciones en una sola línea separadas por el carácter de dos puntos
(:). Esto se ilustra en el siguiente ejemplo:
VBCopiar
Dim sampleString As String = "Hello World" : MsgBox(sampleString)
Aunque en ocasiones resulta útil, esta forma de sintaxis dificulta la lectura y el
mantenimiento del código. Por lo tanto, se recomienda mantener una instrucción en una
línea.
Continuación de una instrucción en varias líneas
Normalmente, una instrucción se ajusta a una línea, pero cuando es demasiado larga, puede
continuar en la línea siguiente mediante una secuencia de continuación de línea, que consta
de un espacio seguido de un carácter de subrayado (_) seguido de un retorno de carro. En el
ejemplo siguiente, la instrucción MsgBox ejecutable continúa en dos líneas.
VBCopiar
Public Sub DemoBox()
Dim nameVar As String
nameVar = "John"
MsgBox("Hello " & nameVar _
& ". How are you?")
End Sub
Continuación de línea implícita
En muchos casos, puede continuar una instrucción en la siguiente línea consecutiva sin usar
el carácter de subrayado (_). Los siguientes elementos de sintaxis continúan implícitamente
la instrucción en la siguiente línea de código.

Después de una coma (,). Por ejemplo:
VBCopiar
Public Function GetUsername(ByVal username As String,
ByVal delimiter As Char,
ByVal position As Integer) As String
Return username.Split(delimiter)(position)
End Function

Después de un paréntesis de apertura (() o antes de un paréntesis de cierre ()). Por
ejemplo:
VBCopiar
Dim username = GetUsername(
Security.Principal.WindowsIdentity.GetCurrent().Name,
CChar("\"),
1
)

Después de una llave abierta ({) o antes de una llave de cierre (}). Por ejemplo:
VBCopiar
Dim customer = New Customer With {
.Name = "Terry Adams",
.Company = "Adventure Works",
.Email = "[email protected]"
}
Para obtener más información, vea Inicializadores de objeto: Tipos con nombre y
anónimos o Inicializadores de colección.

Después de una expresión incrustada abierta (<%=) o antes del cierre de una expresión
incrustada (%>) dentro de un literal XML. Por ejemplo:
VBCopiar
Dim customerXml = <Customer>
<Name>
<%=
customer.Name
%>
</Name>
<Email>
<%=
customer.Email
%>
</Email>
</Customer>
Para obtener más información, vea Expresiones incrustadas en XML.

Después del operador de concatenación (&). Por ejemplo:
VBCopiar
cmd.CommandText =
"SELECT * FROM Titles JOIN Publishers " &
"ON Publishers.PubId = Titles.PubID " &
"WHERE Publishers.State = 'CA'"
Para obtener más información, vea Operadores enumerados por funcionalidad.

Operadores después de la asignación (=, &=, :=, +=, -=, *=/=, \=, ^=, <<=, >>=). Por
ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los operadores binarios (+, -,
, /*, Mod, <><, >, ^<=>=>>, <<, And, AndAlso, Or, OrElse, Like) Xordentro de una
expresión. Por ejemplo:
VBCopiar
Dim memoryInUse =
My.Computer.Info.TotalPhysicalMemory +
My.Computer.Info.TotalVirtualMemory My.Computer.Info.AvailablePhysicalMemory My.Computer.Info.AvailableVirtualMemory
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los Is operadores y IsNot . Por ejemplo:
VBCopiar
If TypeOf inStream Is
IO.FileStream AndAlso
inStream IsNot
Nothing Then
ReadFile(inStream)
End If
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de un carácter calificador de miembro (.) y antes del nombre del miembro.
Por ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Sin embargo, debe incluir un carácter de continuación de línea (_) With después de un
carácter calificador de miembro cuando se usa la instrucción o se suministran valores
en la lista de inicialización para un tipo. Considere la posibilidad de dividir la línea
después del operador de asignación (por ejemplo, =) With cuando use instrucciones o
listas de inicialización de objetos. Por ejemplo:
VBCopiar
' Not allowed:
' Dim aType = New With { .
'
PropertyName = "Value"
' Allowed:
Dim aType = New With {.PropertyName =
"Value"}
Dim log As New EventLog()
' Not allowed:
' With log
'
.
'
Source = "Application"
' End With
' Allowed:
With log
.Source =
"Application"
End With
Para obtener más información, vea Con... End With (Inicializadores deinstrucción u
objeto): tipos con nombre y anónimos.

Después de un calificador de propiedad del eje XML (. o .@ o ...). Sin embargo,
debe incluir un carácter de continuación de línea (_) al especificar un calificador de
miembro cuando se usa la palabra With clave . Por ejemplo:
VBCopiar
Dim customerName = customerXml.
<Name>.Value
Dim customerEmail = customerXml...
<Email>.Value
Para obtener más información, vea Propiedades del eje XML.

Después de un signo menor que (<) o antes de un signo mayor que (>) cuando se
especifica un atributo. También después de un signo mayor que (>) cuando se
especifica un atributo. Sin embargo, debe incluir un carácter de continuación de línea
(_) al especificar atributos de nivel de ensamblado o de nivel de módulo. Por ejemplo:
VBCopiar
<
Serializable()
>
Public Class Customer
Public Property Name As String
Public Property Company As String
Public Property Email As String
End Class
Para obtener más información, vea Información general sobre atributos.

Operadores de consulta antes y después (Aggregate, Distinct, From, Group
By, JoinGroup Join, Let, Order By, SelectTake WhileSkipWhereSkip WhileInTake ,
, Into, , On, , Ascendingy ).Descending No se puede dividir una línea entre las
palabras clave de los operadores de consulta que se conste de varias palabras clave
(Order By, Group Join, Take Whiley Skip While). Por ejemplo:
VBCopiar
Dim vsProcesses = From proc In
Process.GetProcesses
Where proc.MainWindowTitle.Contains("Visual Studio")
Select proc.ProcessName, proc.Id,
proc.MainWindowTitle
Para obtener más información, vea Consultas.

Después de la In palabra clave en una For Each instrucción . Por ejemplo:
VBCopiar
For Each p In
vsProcesses
Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}",
p.ProcessName,
p.Id,
p.MainWindowTitle)
Next
Para obtener más información, vea For Each... Siguiente instrucción.

Después de la From palabra clave en un inicializador de colección. Por ejemplo:
VBCopiar
Dim days = New List(Of String) From
{
"Mo", "Tu", "We", "Th", "F", "Sa", "Su"
}
Para obtener más información, vea Inicializadores de colección.
Agregar comentarios
El código fuente no siempre se explica por sí mismo, incluso para el programador que lo
escribió. Por lo tanto, para ayudar a documentar su código, la mayoría de los
programadores hacen un uso libre de los comentarios insertados. Los comentarios en el
código pueden explicar un procedimiento o una instrucción determinada a cualquier
persona que lea o trabaje con él más adelante. Visual Basic omite los comentarios durante
la compilación y no afectan al código compilado.
Las líneas de comentario comienzan por un apóstrofo (') o REM seguido de un espacio. Se
pueden agregar en cualquier parte del código, excepto dentro de una cadena. Para anexar un
comentario a una instrucción, inserte un apóstrofo o REM después de la instrucción , seguido
del comentario . Los comentarios también pueden ir en su propia línea independiente. En el
ejemplo siguiente se muestran estas posibilidades.
VBCopiar
' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.
Comprobación de errores de compilación
Si, después de escribir una línea de código, la línea se muestra con un subrayado azul
ondulado (también puede aparecer un mensaje de error), se produce un error de sintaxis en
la instrucción . Debe averiguar cuál es el problema de la instrucción (al mirar en la lista de
tareas o mantener el puntero sobre el error con el puntero del mouse y leer el mensaje de
error) y corregirlo. Hasta que haya corregido todos los errores de sintaxis en el código, el
programa no se compilará correctamente.
Secciones relacionadas
Término
Operadores de asignación
Operadores y expresiones
Procedimiento Interrupción y combinación de
instrucciones en código
Procedimiento Instrucciones de etiquetas
Definición
Proporciona vínculos a páginas de referencia de lenguaje
de asignación como =, *=y &=.
Muestra cómo combinar elementos con operadores para p
Muestra cómo dividir una sola instrucción en varias línea
instrucciones en la misma línea.
Muestra cómo etiquetar una línea de código.
Contenido recomendado
Instrucciones en Visual Basic




Artículo
06/04/2022
Tiempo de lectura: 13 minutos
9 colaboradores
Una instrucción de Visual Basic es una instrucción completa. Puede contener palabras
clave, operadores, variables, constantes y expresiones. Cada instrucción pertenece a una de
las categorías siguientes:


Instrucciones de declaración, que nombren una variable, constante o procedimiento,
y también pueden especificar un tipo de datos.
Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden llamar a
un método o función, y pueden recorrer en bucle o bifurcar bloques de código. Las
instrucciones ejecutables incluyen instrucciones de asignación, que asignan un
valor o una expresión a una variable o constante.
En este tema se describe cada categoría. Además, en este tema se describe cómo combinar
varias instrucciones en una sola línea y cómo continuar una instrucción en varias líneas.
Instrucciones de declaración
Las instrucciones de declaración se usan para nombrar y definir procedimientos, variables,
propiedades, matrices y constantes. Al declarar un elemento de programación, también
puede definir su tipo de datos, nivel de acceso y ámbito. Para obtener más información,
vea Características de los elementos declarados.
El ejemplo siguiente contiene tres declaraciones.
VBCopiar
Public Sub ApplyFormat()
Const limit As Integer = 33
Dim thisWidget As New widget
' Insert code to implement the procedure.
End Sub
La primera declaración es la Sub instrucción . Junto con su instrucción de End
Sub coincidencia, declara un procedimiento denominado applyFormat. También especifica
que es applyFormat , lo Publicque significa que cualquier código que pueda hacer
referencia a él puede llamarlo.
La segunda declaración es la Const instrucción , que declara la constante limit,
especificando Integer el tipo de datos y un valor de 33.
La tercera declaración es la Dim instrucción , que declara la variable thisWidget. El tipo de
datos es un objeto específico, es decir, un objeto creado a partir de la Widget clase . Puede
declarar que una variable sea de cualquier tipo de datos básico o de cualquier tipo de objeto
que se exponga en la aplicación que está usando.
Valores iniciales
Cuando se ejecuta el código que contiene una instrucción de declaración, Visual Basic
reserva la memoria necesaria para el elemento declarado. Si el elemento contiene un valor,
Visual Basic inicializa en el valor predeterminado para su tipo de datos. Para obtener más
información, vea "Comportamiento" en Dim (Instrucción).
Puede asignar un valor inicial a una variable como parte de su declaración, como se
muestra en el ejemplo siguiente.
VBCopiar
Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.
Si una variable es una variable de objeto, puede crear explícitamente una instancia de su
clase al declararla mediante la palabra clave New Operator , como se muestra en el ejemplo
siguiente.
VBCopiar
Dim f As New System.Windows.Forms.Form()
Tenga en cuenta que el valor inicial especificado en una instrucción de declaración no se
asigna a una variable hasta que la ejecución alcanza su instrucción de declaración. Hasta
ese momento, la variable contiene el valor predeterminado para su tipo de datos.
Instrucciones ejecutables
Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a
otro lugar del código, recorrer en bucle varias instrucciones o evaluar una expresión. Una
instrucción de asignación es un caso especial de una instrucción ejecutable.
En el ejemplo siguiente se usa una If...Then...Else estructura de control para ejecutar
distintos bloques de código basados en el valor de una variable. Dentro de cada bloque de
código, un For...Next bucle se ejecuta un número especificado de veces.
VBCopiar
Public Sub StartWidget(ByVal aWidget As widget,
ByVal clockwise As Boolean, ByVal revolutions As Integer)
Dim counter As Integer
If clockwise = True Then
For counter = 1 To revolutions
aWidget.SpinClockwise()
Next counter
Else
For counter = 1 To revolutions
aWidget.SpinCounterClockwise()
Next counter
End If
End Sub
La If instrucción del ejemplo anterior comprueba el valor del parámetro clockwise. Si el
valor es True, llama al spinClockwise método de aWidget. Si el valor es False, llama
al spinCounterClockwise método de aWidget. La If...Then...Else estructura de control
termina con End If.
El For...Next bucle dentro de cada bloque llama al método adecuado varias veces igual al
valor del revolutions parámetro .
Instrucciones de asignación
Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar
el valor del lado derecho del operador de asignación (=) y almacenarlo en el elemento de la
izquierda, como en el ejemplo siguiente.
VBCopiar
v = 42
En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la
variable v.
Elementos de programación aptos
El elemento de programación del lado izquierdo del operador de asignación debe ser capaz
de aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que
no sea ReadOnly o debe ser un elemento de matriz. En el contexto de una instrucción de
asignación, este elemento a veces se denomina lvalue, para "left value".
El valor del lado derecho del operador de asignación se genera mediante una expresión, que
puede constar de cualquier combinación de literales, constantes, variables, propiedades,
elementos de matriz, otras expresiones o llamadas de función. Esto se ilustra en el siguiente
ejemplo:
VBCopiar
x = y + z + FindResult(3)
En el ejemplo anterior se agrega el valor mantenido en variable y al valor que se mantiene
en la variable zy, a continuación, se agrega el valor devuelto por la llamada a la
función findResult. A continuación, el valor total de esta expresión se almacena en la
variable x.
Tipos de datos en instrucciones de asignación
Además de los valores numéricos, el operador de asignación también puede
asignar String valores, como se muestra en el ejemplo siguiente.
VBCopiar
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
También puede asignar valores Boolean mediante un Boolean literal o
una Boolean expresión, como se muestra en el ejemplo siguiente.
VBCopiar
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
De forma similar, puede asignar los valores adecuados a los elementos de programación
del Chartipo de datos , Dateo Object . También puede asignar una instancia de objeto a un
elemento declarado como de la clase a partir de la que se crea esa instancia.
Instrucciones de asignación compuestas
Las instrucciones de asignación compuesta realizan primero una operación en una
expresión antes de asignarla a un elemento de programación. En el ejemplo siguiente se
muestra uno de estos operadores, +=, que incrementa el valor de la variable en el lado
izquierdo del operador por el valor de la expresión de la derecha.
VBCopiar
n += 1
En el ejemplo anterior se agrega 1 al valor de ny, a continuación, se almacena ese nuevo
valor en n. Es un equivalente abreviado de la instrucción siguiente:
VBCopiar
n = n + 1
Se pueden realizar diversas operaciones de asignación compuesta mediante operadores de
este tipo. Para obtener una lista de estos operadores y más información sobre ellos,
vea Operadores de asignación.
El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de
cadenas ya existentes, como se muestra en el ejemplo siguiente.
VBCopiar
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Conversiones de tipos en instrucciones de asignación
El valor que asigne a un elemento de variable, propiedad o matriz debe ser de un tipo de
datos adecuado para ese elemento de destino. En general, debe intentar generar un valor del
mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden
convertir a otros tipos durante la asignación.
Para obtener información sobre la conversión entre tipos de datos, vea Conversiones de
tipos en Visual Basic. En resumen, Visual Basic convierte automáticamente un valor de un
tipo determinado en cualquier otro tipo al que se amplía. Una conversión de ampliación
es una de las que siempre se realiza correctamente en tiempo de ejecución y no pierde
ningún dato. Por ejemplo, Visual Basic convierte un valor Integer en
cuando Double corresponda, Integer porque amplía a Double. Para obtener más
información, consulta Widening and Narrowing Conversions.
Las conversiones de limitación (las que no se amplían) conllevan un riesgo de error en
tiempo de ejecución o de pérdida de datos. Puede realizar una conversión de limitación
explícitamente mediante una función de conversión de tipos, o bien puede dirigir al
compilador para que realice todas las conversiones implícitamente estableciendo Option
Strict Off. Para obtener más información, vea Conversiones implícitas y explícitas.
Colocar varias instrucciones en una línea
Puede tener varias instrucciones en una sola línea separadas por el carácter de dos puntos
(:). Esto se ilustra en el siguiente ejemplo:
VBCopiar
Dim sampleString As String = "Hello World" : MsgBox(sampleString)
Aunque en ocasiones resulta útil, esta forma de sintaxis dificulta la lectura y el
mantenimiento del código. Por lo tanto, se recomienda mantener una instrucción en una
línea.
Continuación de una instrucción en varias líneas
Normalmente, una instrucción se ajusta a una línea, pero cuando es demasiado larga, puede
continuar en la línea siguiente mediante una secuencia de continuación de línea, que consta
de un espacio seguido de un carácter de subrayado (_) seguido de un retorno de carro. En el
ejemplo siguiente, la instrucción MsgBox ejecutable continúa en dos líneas.
VBCopiar
Public Sub DemoBox()
Dim nameVar As String
nameVar = "John"
MsgBox("Hello " & nameVar _
& ". How are you?")
End Sub
Continuación de línea implícita
En muchos casos, puede continuar una instrucción en la siguiente línea consecutiva sin usar
el carácter de subrayado (_). Los siguientes elementos de sintaxis continúan implícitamente
la instrucción en la siguiente línea de código.

Después de una coma (,). Por ejemplo:
VBCopiar
Public Function GetUsername(ByVal username As String,
ByVal delimiter As Char,
ByVal position As Integer) As String
Return username.Split(delimiter)(position)
End Function

Después de un paréntesis de apertura (() o antes de un paréntesis de cierre ()). Por
ejemplo:
VBCopiar
Dim username = GetUsername(
Security.Principal.WindowsIdentity.GetCurrent().Name,
CChar("\"),
1
)

Después de una llave abierta ({) o antes de una llave de cierre (}). Por ejemplo:
VBCopiar
Dim customer = New Customer With {
.Name = "Terry Adams",
.Company = "Adventure Works",
.Email = "[email protected]"
}
Para obtener más información, vea Inicializadores de objeto: Tipos con nombre y
anónimos o Inicializadores de colección.

Después de una expresión incrustada abierta (<%=) o antes del cierre de una expresión
incrustada (%>) dentro de un literal XML. Por ejemplo:
VBCopiar
Dim customerXml = <Customer>
<Name>
<%=
customer.Name
%>
</Name>
<Email>
<%=
customer.Email
%>
</Email>
</Customer>
Para obtener más información, vea Expresiones incrustadas en XML.

Después del operador de concatenación (&). Por ejemplo:
VBCopiar
cmd.CommandText =
"SELECT * FROM Titles JOIN Publishers " &
"ON Publishers.PubId = Titles.PubID " &
"WHERE Publishers.State = 'CA'"
Para obtener más información, vea Operadores enumerados por funcionalidad.

Operadores después de la asignación (=, &=, :=, +=, -=, *=/=, \=, ^=, <<=, >>=). Por
ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los operadores binarios (+, -,
, /*, Mod, <><, >, ^<=>=>>, <<, And, AndAlso, Or, OrElse, Like) Xordentro de una
expresión. Por ejemplo:
VBCopiar
Dim memoryInUse =
My.Computer.Info.TotalPhysicalMemory +
My.Computer.Info.TotalVirtualMemory My.Computer.Info.AvailablePhysicalMemory My.Computer.Info.AvailableVirtualMemory
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los Is operadores y IsNot . Por ejemplo:
VBCopiar
If TypeOf inStream Is
IO.FileStream AndAlso
inStream IsNot
Nothing Then
ReadFile(inStream)
End If
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de un carácter calificador de miembro (.) y antes del nombre del miembro.
Por ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Sin embargo, debe incluir un carácter de continuación de línea (_) With después de un
carácter calificador de miembro cuando se usa la instrucción o se suministran valores
en la lista de inicialización para un tipo. Considere la posibilidad de dividir la línea
después del operador de asignación (por ejemplo, =) With cuando use instrucciones o
listas de inicialización de objetos. Por ejemplo:
VBCopiar
' Not allowed:
' Dim aType = New With { .
'
PropertyName = "Value"
' Allowed:
Dim aType = New With {.PropertyName =
"Value"}
Dim log As New EventLog()
' Not allowed:
' With log
'
.
'
Source = "Application"
' End With
' Allowed:
With log
.Source =
"Application"
End With
Para obtener más información, vea Con... End With (Inicializadores deinstrucción u
objeto): tipos con nombre y anónimos.

Después de un calificador de propiedad del eje XML (. o .@ o ...). Sin embargo,
debe incluir un carácter de continuación de línea (_) al especificar un calificador de
miembro cuando se usa la palabra With clave . Por ejemplo:
VBCopiar
Dim customerName = customerXml.
<Name>.Value
Dim customerEmail = customerXml...
<Email>.Value
Para obtener más información, vea Propiedades del eje XML.

Después de un signo menor que (<) o antes de un signo mayor que (>) cuando se
especifica un atributo. También después de un signo mayor que (>) cuando se
especifica un atributo. Sin embargo, debe incluir un carácter de continuación de línea
(_) al especificar atributos de nivel de ensamblado o de nivel de módulo. Por ejemplo:
VBCopiar
<
Serializable()
>
Public Class Customer
Public Property Name As String
Public Property Company As String
Public Property Email As String
End Class
Para obtener más información, vea Información general sobre atributos.

Operadores de consulta antes y después (Aggregate, Distinct, From, Group
By, JoinGroup Join, Let, Order By, SelectTake WhileSkipWhereSkip WhileInTake ,
, Into, , On, , Ascendingy ).Descending No se puede dividir una línea entre las
palabras clave de los operadores de consulta que se conste de varias palabras clave
(Order By, Group Join, Take Whiley Skip While). Por ejemplo:
VBCopiar
Dim vsProcesses = From proc In
Process.GetProcesses
Where proc.MainWindowTitle.Contains("Visual Studio")
Select proc.ProcessName, proc.Id,
proc.MainWindowTitle
Para obtener más información, vea Consultas.

Después de la In palabra clave en una For Each instrucción . Por ejemplo:
VBCopiar
For Each p In
vsProcesses
Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}",
p.ProcessName,
p.Id,
p.MainWindowTitle)
Next
Para obtener más información, vea For Each... Siguiente instrucción.

Después de la From palabra clave en un inicializador de colección. Por ejemplo:
VBCopiar
Dim days = New List(Of String) From
{
"Mo", "Tu", "We", "Th", "F", "Sa", "Su"
}
Para obtener más información, vea Inicializadores de colección.
Agregar comentarios
El código fuente no siempre se explica por sí mismo, incluso para el programador que lo
escribió. Por lo tanto, para ayudar a documentar su código, la mayoría de los
programadores hacen un uso libre de los comentarios insertados. Los comentarios en el
código pueden explicar un procedimiento o una instrucción determinada a cualquier
persona que lea o trabaje con él más adelante. Visual Basic omite los comentarios durante
la compilación y no afectan al código compilado.
Las líneas de comentario comienzan por un apóstrofo (') o REM seguido de un espacio. Se
pueden agregar en cualquier parte del código, excepto dentro de una cadena. Para anexar un
comentario a una instrucción, inserte un apóstrofo o REM después de la instrucción , seguido
del comentario . Los comentarios también pueden ir en su propia línea independiente. En el
ejemplo siguiente se muestran estas posibilidades.
VBCopiar
' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.
Comprobación de errores de compilación
Si, después de escribir una línea de código, la línea se muestra con un subrayado azul
ondulado (también puede aparecer un mensaje de error), se produce un error de sintaxis en
la instrucción . Debe averiguar cuál es el problema de la instrucción (al mirar en la lista de
tareas o mantener el puntero sobre el error con el puntero del mouse y leer el mensaje de
error) y corregirlo. Hasta que haya corregido todos los errores de sintaxis en el código, el
programa no se compilará correctamente.
Secciones relacionadas
Término
Operadores de asignación
Operadores y expresiones
Procedimiento Interrupción y combinación de
instrucciones en código
Procedimiento Instrucciones de etiquetas
Definición
Proporciona vínculos a páginas de referencia de lenguaje
de asignación como =, *=y &=.
Muestra cómo combinar elementos con operadores para p
Muestra cómo dividir una sola instrucción en varias línea
instrucciones en la misma línea.
Muestra cómo etiquetar una línea de código.
Contenido recomendado
Instrucciones en Visual Basic




Artículo
06/04/2022
Tiempo de lectura: 13 minutos
9 colaboradores
Una instrucción de Visual Basic es una instrucción completa. Puede contener palabras
clave, operadores, variables, constantes y expresiones. Cada instrucción pertenece a una de
las categorías siguientes:

Instrucciones de declaración, que nombren una variable, constante o procedimiento,
y también pueden especificar un tipo de datos.

Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden llamar a
un método o función, y pueden recorrer en bucle o bifurcar bloques de código. Las
instrucciones ejecutables incluyen instrucciones de asignación, que asignan un
valor o una expresión a una variable o constante.
En este tema se describe cada categoría. Además, en este tema se describe cómo combinar
varias instrucciones en una sola línea y cómo continuar una instrucción en varias líneas.
Instrucciones de declaración
Las instrucciones de declaración se usan para nombrar y definir procedimientos, variables,
propiedades, matrices y constantes. Al declarar un elemento de programación, también
puede definir su tipo de datos, nivel de acceso y ámbito. Para obtener más información,
vea Características de los elementos declarados.
El ejemplo siguiente contiene tres declaraciones.
VBCopiar
Public Sub ApplyFormat()
Const limit As Integer = 33
Dim thisWidget As New widget
' Insert code to implement the procedure.
End Sub
La primera declaración es la Sub instrucción . Junto con su instrucción de End
Sub coincidencia, declara un procedimiento denominado applyFormat. También especifica
que es applyFormat , lo Publicque significa que cualquier código que pueda hacer
referencia a él puede llamarlo.
La segunda declaración es la Const instrucción , que declara la constante limit,
especificando Integer el tipo de datos y un valor de 33.
La tercera declaración es la Dim instrucción , que declara la variable thisWidget. El tipo de
datos es un objeto específico, es decir, un objeto creado a partir de la Widget clase . Puede
declarar que una variable sea de cualquier tipo de datos básico o de cualquier tipo de objeto
que se exponga en la aplicación que está usando.
Valores iniciales
Cuando se ejecuta el código que contiene una instrucción de declaración, Visual Basic
reserva la memoria necesaria para el elemento declarado. Si el elemento contiene un valor,
Visual Basic inicializa en el valor predeterminado para su tipo de datos. Para obtener más
información, vea "Comportamiento" en Dim (Instrucción).
Puede asignar un valor inicial a una variable como parte de su declaración, como se
muestra en el ejemplo siguiente.
VBCopiar
Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.
Si una variable es una variable de objeto, puede crear explícitamente una instancia de su
clase al declararla mediante la palabra clave New Operator , como se muestra en el ejemplo
siguiente.
VBCopiar
Dim f As New System.Windows.Forms.Form()
Tenga en cuenta que el valor inicial especificado en una instrucción de declaración no se
asigna a una variable hasta que la ejecución alcanza su instrucción de declaración. Hasta
ese momento, la variable contiene el valor predeterminado para su tipo de datos.
Instrucciones ejecutables
Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a
otro lugar del código, recorrer en bucle varias instrucciones o evaluar una expresión. Una
instrucción de asignación es un caso especial de una instrucción ejecutable.
En el ejemplo siguiente se usa una If...Then...Else estructura de control para ejecutar
distintos bloques de código basados en el valor de una variable. Dentro de cada bloque de
código, un For...Next bucle se ejecuta un número especificado de veces.
VBCopiar
Public Sub StartWidget(ByVal aWidget As widget,
ByVal clockwise As Boolean, ByVal revolutions As Integer)
Dim counter As Integer
If clockwise = True Then
For counter = 1 To revolutions
aWidget.SpinClockwise()
Next counter
Else
For counter = 1 To revolutions
aWidget.SpinCounterClockwise()
Next counter
End If
End Sub
La If instrucción del ejemplo anterior comprueba el valor del parámetro clockwise. Si el
valor es True, llama al spinClockwise método de aWidget. Si el valor es False, llama
al spinCounterClockwise método de aWidget. La If...Then...Else estructura de control
termina con End If.
El For...Next bucle dentro de cada bloque llama al método adecuado varias veces igual al
valor del revolutions parámetro .
Instrucciones de asignación
Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar
el valor del lado derecho del operador de asignación (=) y almacenarlo en el elemento de la
izquierda, como en el ejemplo siguiente.
VBCopiar
v = 42
En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la
variable v.
Elementos de programación aptos
El elemento de programación del lado izquierdo del operador de asignación debe ser capaz
de aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que
no sea ReadOnly o debe ser un elemento de matriz. En el contexto de una instrucción de
asignación, este elemento a veces se denomina lvalue, para "left value".
El valor del lado derecho del operador de asignación se genera mediante una expresión, que
puede constar de cualquier combinación de literales, constantes, variables, propiedades,
elementos de matriz, otras expresiones o llamadas de función. Esto se ilustra en el siguiente
ejemplo:
VBCopiar
x = y + z + FindResult(3)
En el ejemplo anterior se agrega el valor mantenido en variable y al valor que se mantiene
en la variable zy, a continuación, se agrega el valor devuelto por la llamada a la
función findResult. A continuación, el valor total de esta expresión se almacena en la
variable x.
Tipos de datos en instrucciones de asignación
Además de los valores numéricos, el operador de asignación también puede
asignar String valores, como se muestra en el ejemplo siguiente.
VBCopiar
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
También puede asignar valores Boolean mediante un Boolean literal o
una Boolean expresión, como se muestra en el ejemplo siguiente.
VBCopiar
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
De forma similar, puede asignar los valores adecuados a los elementos de programación
del Chartipo de datos , Dateo Object . También puede asignar una instancia de objeto a un
elemento declarado como de la clase a partir de la que se crea esa instancia.
Instrucciones de asignación compuestas
Las instrucciones de asignación compuesta realizan primero una operación en una
expresión antes de asignarla a un elemento de programación. En el ejemplo siguiente se
muestra uno de estos operadores, +=, que incrementa el valor de la variable en el lado
izquierdo del operador por el valor de la expresión de la derecha.
VBCopiar
n += 1
En el ejemplo anterior se agrega 1 al valor de ny, a continuación, se almacena ese nuevo
valor en n. Es un equivalente abreviado de la instrucción siguiente:
VBCopiar
n = n + 1
Se pueden realizar diversas operaciones de asignación compuesta mediante operadores de
este tipo. Para obtener una lista de estos operadores y más información sobre ellos,
vea Operadores de asignación.
El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de
cadenas ya existentes, como se muestra en el ejemplo siguiente.
VBCopiar
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Conversiones de tipos en instrucciones de asignación
El valor que asigne a un elemento de variable, propiedad o matriz debe ser de un tipo de
datos adecuado para ese elemento de destino. En general, debe intentar generar un valor del
mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden
convertir a otros tipos durante la asignación.
Para obtener información sobre la conversión entre tipos de datos, vea Conversiones de
tipos en Visual Basic. En resumen, Visual Basic convierte automáticamente un valor de un
tipo determinado en cualquier otro tipo al que se amplía. Una conversión de ampliación
es una de las que siempre se realiza correctamente en tiempo de ejecución y no pierde
ningún dato. Por ejemplo, Visual Basic convierte un valor Integer en
cuando Double corresponda, Integer porque amplía a Double. Para obtener más
información, consulta Widening and Narrowing Conversions.
Las conversiones de limitación (las que no se amplían) conllevan un riesgo de error en
tiempo de ejecución o de pérdida de datos. Puede realizar una conversión de limitación
explícitamente mediante una función de conversión de tipos, o bien puede dirigir al
compilador para que realice todas las conversiones implícitamente estableciendo Option
Strict Off. Para obtener más información, vea Conversiones implícitas y explícitas.
Colocar varias instrucciones en una línea
Puede tener varias instrucciones en una sola línea separadas por el carácter de dos puntos
(:). Esto se ilustra en el siguiente ejemplo:
VBCopiar
Dim sampleString As String = "Hello World" : MsgBox(sampleString)
Aunque en ocasiones resulta útil, esta forma de sintaxis dificulta la lectura y el
mantenimiento del código. Por lo tanto, se recomienda mantener una instrucción en una
línea.
Continuación de una instrucción en varias líneas
Normalmente, una instrucción se ajusta a una línea, pero cuando es demasiado larga, puede
continuar en la línea siguiente mediante una secuencia de continuación de línea, que consta
de un espacio seguido de un carácter de subrayado (_) seguido de un retorno de carro. En el
ejemplo siguiente, la instrucción MsgBox ejecutable continúa en dos líneas.
VBCopiar
Public Sub DemoBox()
Dim nameVar As String
nameVar = "John"
MsgBox("Hello " & nameVar _
& ". How are you?")
End Sub
Continuación de línea implícita
En muchos casos, puede continuar una instrucción en la siguiente línea consecutiva sin usar
el carácter de subrayado (_). Los siguientes elementos de sintaxis continúan implícitamente
la instrucción en la siguiente línea de código.

Después de una coma (,). Por ejemplo:
VBCopiar
Public Function GetUsername(ByVal username As String,
ByVal delimiter As Char,
ByVal position As Integer) As String
Return username.Split(delimiter)(position)
End Function

Después de un paréntesis de apertura (() o antes de un paréntesis de cierre ()). Por
ejemplo:
VBCopiar
Dim username = GetUsername(
Security.Principal.WindowsIdentity.GetCurrent().Name,
CChar("\"),
1
)

Después de una llave abierta ({) o antes de una llave de cierre (}). Por ejemplo:
VBCopiar
Dim customer = New Customer With {
.Name = "Terry Adams",
.Company = "Adventure Works",
.Email = "[email protected]"
}
Para obtener más información, vea Inicializadores de objeto: Tipos con nombre y
anónimos o Inicializadores de colección.

Después de una expresión incrustada abierta (<%=) o antes del cierre de una expresión
incrustada (%>) dentro de un literal XML. Por ejemplo:
VBCopiar
Dim customerXml = <Customer>
<Name>
<%=
customer.Name
%>
</Name>
<Email>
<%=
customer.Email
%>
</Email>
</Customer>
Para obtener más información, vea Expresiones incrustadas en XML.

Después del operador de concatenación (&). Por ejemplo:
VBCopiar
cmd.CommandText =
"SELECT * FROM Titles JOIN Publishers " &
"ON Publishers.PubId = Titles.PubID " &
"WHERE Publishers.State = 'CA'"
Para obtener más información, vea Operadores enumerados por funcionalidad.

Operadores después de la asignación (=, &=, :=, +=, -=, *=/=, \=, ^=, <<=, >>=). Por
ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los operadores binarios (+, -,
, /*, Mod, <><, >, ^<=>=>>, <<, And, AndAlso, Or, OrElse, Like) Xordentro de una
expresión. Por ejemplo:
VBCopiar
Dim memoryInUse =
My.Computer.Info.TotalPhysicalMemory +
My.Computer.Info.TotalVirtualMemory My.Computer.Info.AvailablePhysicalMemory My.Computer.Info.AvailableVirtualMemory
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los Is operadores y IsNot . Por ejemplo:
VBCopiar
If TypeOf inStream Is
IO.FileStream AndAlso
inStream IsNot
Nothing Then
ReadFile(inStream)
End If
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de un carácter calificador de miembro (.) y antes del nombre del miembro.
Por ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Sin embargo, debe incluir un carácter de continuación de línea (_) With después de un
carácter calificador de miembro cuando se usa la instrucción o se suministran valores
en la lista de inicialización para un tipo. Considere la posibilidad de dividir la línea
después del operador de asignación (por ejemplo, =) With cuando use instrucciones o
listas de inicialización de objetos. Por ejemplo:
VBCopiar
' Not allowed:
' Dim aType = New With { .
'
PropertyName = "Value"
' Allowed:
Dim aType = New With {.PropertyName =
"Value"}
Dim log As New EventLog()
' Not allowed:
' With log
'
.
'
Source = "Application"
' End With
' Allowed:
With log
.Source =
"Application"
End With
Para obtener más información, vea Con... End With (Inicializadores deinstrucción u
objeto): tipos con nombre y anónimos.

Después de un calificador de propiedad del eje XML (. o .@ o ...). Sin embargo,
debe incluir un carácter de continuación de línea (_) al especificar un calificador de
miembro cuando se usa la palabra With clave . Por ejemplo:
VBCopiar
Dim customerName = customerXml.
<Name>.Value
Dim customerEmail = customerXml...
<Email>.Value
Para obtener más información, vea Propiedades del eje XML.

Después de un signo menor que (<) o antes de un signo mayor que (>) cuando se
especifica un atributo. También después de un signo mayor que (>) cuando se
especifica un atributo. Sin embargo, debe incluir un carácter de continuación de línea
(_) al especificar atributos de nivel de ensamblado o de nivel de módulo. Por ejemplo:
VBCopiar
<
Serializable()
>
Public Class Customer
Public Property Name As String
Public Property Company As String
Public Property Email As String
End Class
Para obtener más información, vea Información general sobre atributos.

Operadores de consulta antes y después (Aggregate, Distinct, From, Group
By, JoinGroup Join, Let, Order By, SelectTake WhileSkipWhereSkip WhileInTake ,
, Into, , On, , Ascendingy ).Descending No se puede dividir una línea entre las
palabras clave de los operadores de consulta que se conste de varias palabras clave
(Order By, Group Join, Take Whiley Skip While). Por ejemplo:
VBCopiar
Dim vsProcesses = From proc In
Process.GetProcesses
Where proc.MainWindowTitle.Contains("Visual Studio")
Select proc.ProcessName, proc.Id,
proc.MainWindowTitle
Para obtener más información, vea Consultas.

Después de la In palabra clave en una For Each instrucción . Por ejemplo:
VBCopiar
For Each p In
vsProcesses
Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}",
p.ProcessName,
p.Id,
p.MainWindowTitle)
Next
Para obtener más información, vea For Each... Siguiente instrucción.

Después de la From palabra clave en un inicializador de colección. Por ejemplo:
VBCopiar
Dim days = New List(Of String) From
{
"Mo", "Tu", "We", "Th", "F", "Sa", "Su"
}
Para obtener más información, vea Inicializadores de colección.
Agregar comentarios
El código fuente no siempre se explica por sí mismo, incluso para el programador que lo
escribió. Por lo tanto, para ayudar a documentar su código, la mayoría de los
programadores hacen un uso libre de los comentarios insertados. Los comentarios en el
código pueden explicar un procedimiento o una instrucción determinada a cualquier
persona que lea o trabaje con él más adelante. Visual Basic omite los comentarios durante
la compilación y no afectan al código compilado.
Las líneas de comentario comienzan por un apóstrofo (') o REM seguido de un espacio. Se
pueden agregar en cualquier parte del código, excepto dentro de una cadena. Para anexar un
comentario a una instrucción, inserte un apóstrofo o REM después de la instrucción , seguido
del comentario . Los comentarios también pueden ir en su propia línea independiente. En el
ejemplo siguiente se muestran estas posibilidades.
VBCopiar
' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.
Comprobación de errores de compilación
Si, después de escribir una línea de código, la línea se muestra con un subrayado azul
ondulado (también puede aparecer un mensaje de error), se produce un error de sintaxis en
la instrucción . Debe averiguar cuál es el problema de la instrucción (al mirar en la lista de
tareas o mantener el puntero sobre el error con el puntero del mouse y leer el mensaje de
error) y corregirlo. Hasta que haya corregido todos los errores de sintaxis en el código, el
programa no se compilará correctamente.
Secciones relacionadas
Término
Operadores de asignación
Operadores y expresiones
Procedimiento Interrupción y combinación de
instrucciones en código
Procedimiento Instrucciones de etiquetas
Definición
Proporciona vínculos a páginas de referencia de lenguaje
de asignación como =, *=y &=.
Muestra cómo combinar elementos con operadores para p
Muestra cómo dividir una sola instrucción en varias línea
instrucciones en la misma línea.
Muestra cómo etiquetar una línea de código.
Contenido recomendado
Instrucciones en Visual Basic




Artículo
06/04/2022
Tiempo de lectura: 13 minutos
9 colaboradores
Una instrucción de Visual Basic es una instrucción completa. Puede contener palabras
clave, operadores, variables, constantes y expresiones. Cada instrucción pertenece a una de
las categorías siguientes:


Instrucciones de declaración, que nombren una variable, constante o procedimiento,
y también pueden especificar un tipo de datos.
Instrucciones ejecutables, que inician acciones. Estas instrucciones pueden llamar a
un método o función, y pueden recorrer en bucle o bifurcar bloques de código. Las
instrucciones ejecutables incluyen instrucciones de asignación, que asignan un
valor o una expresión a una variable o constante.
En este tema se describe cada categoría. Además, en este tema se describe cómo combinar
varias instrucciones en una sola línea y cómo continuar una instrucción en varias líneas.
Instrucciones de declaración
Las instrucciones de declaración se usan para nombrar y definir procedimientos, variables,
propiedades, matrices y constantes. Al declarar un elemento de programación, también
puede definir su tipo de datos, nivel de acceso y ámbito. Para obtener más información,
vea Características de los elementos declarados.
El ejemplo siguiente contiene tres declaraciones.
VBCopiar
Public Sub ApplyFormat()
Const limit As Integer = 33
Dim thisWidget As New widget
' Insert code to implement the procedure.
End Sub
La primera declaración es la Sub instrucción . Junto con su instrucción de End
Sub coincidencia, declara un procedimiento denominado applyFormat. También especifica
que es applyFormat , lo Publicque significa que cualquier código que pueda hacer
referencia a él puede llamarlo.
La segunda declaración es la Const instrucción , que declara la constante limit,
especificando Integer el tipo de datos y un valor de 33.
La tercera declaración es la Dim instrucción , que declara la variable thisWidget. El tipo de
datos es un objeto específico, es decir, un objeto creado a partir de la Widget clase . Puede
declarar que una variable sea de cualquier tipo de datos básico o de cualquier tipo de objeto
que se exponga en la aplicación que está usando.
Valores iniciales
Cuando se ejecuta el código que contiene una instrucción de declaración, Visual Basic
reserva la memoria necesaria para el elemento declarado. Si el elemento contiene un valor,
Visual Basic inicializa en el valor predeterminado para su tipo de datos. Para obtener más
información, vea "Comportamiento" en Dim (Instrucción).
Puede asignar un valor inicial a una variable como parte de su declaración, como se
muestra en el ejemplo siguiente.
VBCopiar
Dim m As Integer = 45
' The preceding declaration creates m and assigns the value 45 to it.
Si una variable es una variable de objeto, puede crear explícitamente una instancia de su
clase al declararla mediante la palabra clave New Operator , como se muestra en el ejemplo
siguiente.
VBCopiar
Dim f As New System.Windows.Forms.Form()
Tenga en cuenta que el valor inicial especificado en una instrucción de declaración no se
asigna a una variable hasta que la ejecución alcanza su instrucción de declaración. Hasta
ese momento, la variable contiene el valor predeterminado para su tipo de datos.
Instrucciones ejecutables
Una instrucción ejecutable realiza una acción. Puede llamar a un procedimiento, bifurcar a
otro lugar del código, recorrer en bucle varias instrucciones o evaluar una expresión. Una
instrucción de asignación es un caso especial de una instrucción ejecutable.
En el ejemplo siguiente se usa una If...Then...Else estructura de control para ejecutar
distintos bloques de código basados en el valor de una variable. Dentro de cada bloque de
código, un For...Next bucle se ejecuta un número especificado de veces.
VBCopiar
Public Sub StartWidget(ByVal aWidget As widget,
ByVal clockwise As Boolean, ByVal revolutions As Integer)
Dim counter As Integer
If clockwise = True Then
For counter = 1 To revolutions
aWidget.SpinClockwise()
Next counter
Else
For counter = 1 To revolutions
aWidget.SpinCounterClockwise()
Next counter
End If
End Sub
La If instrucción del ejemplo anterior comprueba el valor del parámetro clockwise. Si el
valor es True, llama al spinClockwise método de aWidget. Si el valor es False, llama
al spinCounterClockwise método de aWidget. La If...Then...Else estructura de control
termina con End If.
El For...Next bucle dentro de cada bloque llama al método adecuado varias veces igual al
valor del revolutions parámetro .
Instrucciones de asignación
Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar
el valor del lado derecho del operador de asignación (=) y almacenarlo en el elemento de la
izquierda, como en el ejemplo siguiente.
VBCopiar
v = 42
En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la
variable v.
Elementos de programación aptos
El elemento de programación del lado izquierdo del operador de asignación debe ser capaz
de aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que
no sea ReadOnly o debe ser un elemento de matriz. En el contexto de una instrucción de
asignación, este elemento a veces se denomina lvalue, para "left value".
El valor del lado derecho del operador de asignación se genera mediante una expresión, que
puede constar de cualquier combinación de literales, constantes, variables, propiedades,
elementos de matriz, otras expresiones o llamadas de función. Esto se ilustra en el siguiente
ejemplo:
VBCopiar
x = y + z + FindResult(3)
En el ejemplo anterior se agrega el valor mantenido en variable y al valor que se mantiene
en la variable zy, a continuación, se agrega el valor devuelto por la llamada a la
función findResult. A continuación, el valor total de esta expresión se almacena en la
variable x.
Tipos de datos en instrucciones de asignación
Además de los valores numéricos, el operador de asignación también puede
asignar String valores, como se muestra en el ejemplo siguiente.
VBCopiar
Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.
También puede asignar valores Boolean mediante un Boolean literal o
una Boolean expresión, como se muestra en el ejemplo siguiente.
VBCopiar
Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.
De forma similar, puede asignar los valores adecuados a los elementos de programación
del Chartipo de datos , Dateo Object . También puede asignar una instancia de objeto a un
elemento declarado como de la clase a partir de la que se crea esa instancia.
Instrucciones de asignación compuestas
Las instrucciones de asignación compuesta realizan primero una operación en una
expresión antes de asignarla a un elemento de programación. En el ejemplo siguiente se
muestra uno de estos operadores, +=, que incrementa el valor de la variable en el lado
izquierdo del operador por el valor de la expresión de la derecha.
VBCopiar
n += 1
En el ejemplo anterior se agrega 1 al valor de ny, a continuación, se almacena ese nuevo
valor en n. Es un equivalente abreviado de la instrucción siguiente:
VBCopiar
n = n + 1
Se pueden realizar diversas operaciones de asignación compuesta mediante operadores de
este tipo. Para obtener una lista de estos operadores y más información sobre ellos,
vea Operadores de asignación.
El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de
cadenas ya existentes, como se muestra en el ejemplo siguiente.
VBCopiar
Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".
Conversiones de tipos en instrucciones de asignación
El valor que asigne a un elemento de variable, propiedad o matriz debe ser de un tipo de
datos adecuado para ese elemento de destino. En general, debe intentar generar un valor del
mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden
convertir a otros tipos durante la asignación.
Para obtener información sobre la conversión entre tipos de datos, vea Conversiones de
tipos en Visual Basic. En resumen, Visual Basic convierte automáticamente un valor de un
tipo determinado en cualquier otro tipo al que se amplía. Una conversión de ampliación
es una de las que siempre se realiza correctamente en tiempo de ejecución y no pierde
ningún dato. Por ejemplo, Visual Basic convierte un valor Integer en
cuando Double corresponda, Integer porque amplía a Double. Para obtener más
información, consulta Widening and Narrowing Conversions.
Las conversiones de limitación (las que no se amplían) conllevan un riesgo de error en
tiempo de ejecución o de pérdida de datos. Puede realizar una conversión de limitación
explícitamente mediante una función de conversión de tipos, o bien puede dirigir al
compilador para que realice todas las conversiones implícitamente estableciendo Option
Strict Off. Para obtener más información, vea Conversiones implícitas y explícitas.
Colocar varias instrucciones en una línea
Puede tener varias instrucciones en una sola línea separadas por el carácter de dos puntos
(:). Esto se ilustra en el siguiente ejemplo:
VBCopiar
Dim sampleString As String = "Hello World" : MsgBox(sampleString)
Aunque en ocasiones resulta útil, esta forma de sintaxis dificulta la lectura y el
mantenimiento del código. Por lo tanto, se recomienda mantener una instrucción en una
línea.
Continuación de una instrucción en varias líneas
Normalmente, una instrucción se ajusta a una línea, pero cuando es demasiado larga, puede
continuar en la línea siguiente mediante una secuencia de continuación de línea, que consta
de un espacio seguido de un carácter de subrayado (_) seguido de un retorno de carro. En el
ejemplo siguiente, la instrucción MsgBox ejecutable continúa en dos líneas.
VBCopiar
Public Sub DemoBox()
Dim nameVar As String
nameVar = "John"
MsgBox("Hello " & nameVar _
& ". How are you?")
End Sub
Continuación de línea implícita
En muchos casos, puede continuar una instrucción en la siguiente línea consecutiva sin usar
el carácter de subrayado (_). Los siguientes elementos de sintaxis continúan implícitamente
la instrucción en la siguiente línea de código.

Después de una coma (,). Por ejemplo:
VBCopiar
Public Function GetUsername(ByVal username As String,
ByVal delimiter As Char,
ByVal position As Integer) As String
Return username.Split(delimiter)(position)
End Function

Después de un paréntesis de apertura (() o antes de un paréntesis de cierre ()). Por
ejemplo:
VBCopiar
Dim username = GetUsername(
Security.Principal.WindowsIdentity.GetCurrent().Name,
CChar("\"),
1
)

Después de una llave abierta ({) o antes de una llave de cierre (}). Por ejemplo:
VBCopiar
Dim customer = New Customer With {
.Name = "Terry Adams",
.Company = "Adventure Works",
.Email = "[email protected]"
}
Para obtener más información, vea Inicializadores de objeto: Tipos con nombre y
anónimos o Inicializadores de colección.

Después de una expresión incrustada abierta (<%=) o antes del cierre de una expresión
incrustada (%>) dentro de un literal XML. Por ejemplo:
VBCopiar
Dim customerXml = <Customer>
<Name>
<%=
customer.Name
%>
</Name>
<Email>
<%=
customer.Email
%>
</Email>
</Customer>
Para obtener más información, vea Expresiones incrustadas en XML.

Después del operador de concatenación (&). Por ejemplo:
VBCopiar
cmd.CommandText =
"SELECT * FROM Titles JOIN Publishers " &
"ON Publishers.PubId = Titles.PubID " &
"WHERE Publishers.State = 'CA'"
Para obtener más información, vea Operadores enumerados por funcionalidad.

Operadores después de la asignación (=, &=, :=, +=, -=, *=/=, \=, ^=, <<=, >>=). Por
ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los operadores binarios (+, -,
, /*, Mod, <><, >, ^<=>=>>, <<, And, AndAlso, Or, OrElse, Like) Xordentro de una
expresión. Por ejemplo:
VBCopiar
Dim memoryInUse =
My.Computer.Info.TotalPhysicalMemory +
My.Computer.Info.TotalVirtualMemory My.Computer.Info.AvailablePhysicalMemory My.Computer.Info.AvailableVirtualMemory
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de los Is operadores y IsNot . Por ejemplo:
VBCopiar
If TypeOf inStream Is
IO.FileStream AndAlso
inStream IsNot
Nothing Then
ReadFile(inStream)
End If
Para obtener más información, vea Operadores enumerados por funcionalidad.

Después de un carácter calificador de miembro (.) y antes del nombre del miembro.
Por ejemplo:
VBCopiar
Dim fileStream =
My.Computer.FileSystem.
OpenTextFileReader(filePath)
Sin embargo, debe incluir un carácter de continuación de línea (_) With después de un
carácter calificador de miembro cuando se usa la instrucción o se suministran valores
en la lista de inicialización para un tipo. Considere la posibilidad de dividir la línea
después del operador de asignación (por ejemplo, =) With cuando use instrucciones o
listas de inicialización de objetos. Por ejemplo:
VBCopiar
' Not allowed:
' Dim aType = New With { .
'
PropertyName = "Value"
' Allowed:
Dim aType = New With {.PropertyName =
"Value"}
Dim log As New EventLog()
' Not allowed:
' With log
'
.
'
Source = "Application"
' End With
' Allowed:
With log
.Source =
"Application"
End With
Para obtener más información, vea Con... End With (Inicializadores deinstrucción u
objeto): tipos con nombre y anónimos.

Después de un calificador de propiedad del eje XML (. o .@ o ...). Sin embargo,
debe incluir un carácter de continuación de línea (_) al especificar un calificador de
miembro cuando se usa la palabra With clave . Por ejemplo:
VBCopiar
Dim customerName = customerXml.
<Name>.Value
Dim customerEmail = customerXml...
<Email>.Value
Para obtener más información, vea Propiedades del eje XML.

Después de un signo menor que (<) o antes de un signo mayor que (>) cuando se
especifica un atributo. También después de un signo mayor que (>) cuando se
especifica un atributo. Sin embargo, debe incluir un carácter de continuación de línea
(_) al especificar atributos de nivel de ensamblado o de nivel de módulo. Por ejemplo:
VBCopiar
<
Serializable()
>
Public Class Customer
Public Property Name As String
Public Property Company As String
Public Property Email As String
End Class
Para obtener más información, vea Información general sobre atributos.

Operadores de consulta antes y después (Aggregate, Distinct, From, Group
By, JoinGroup Join, Let, Order By, SelectTake WhileSkipWhereSkip WhileInTake ,
, Into, , On, , Ascendingy ).Descending No se puede dividir una línea entre las
palabras clave de los operadores de consulta que se conste de varias palabras clave
(Order By, Group Join, Take Whiley Skip While). Por ejemplo:
VBCopiar
Dim vsProcesses = From proc In
Process.GetProcesses
Where proc.MainWindowTitle.Contains("Visual Studio")
Select proc.ProcessName, proc.Id,
proc.MainWindowTitle
Para obtener más información, vea Consultas.

Después de la In palabra clave en una For Each instrucción . Por ejemplo:
VBCopiar
For Each p In
vsProcesses
Console.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}",
p.ProcessName,
p.Id,
p.MainWindowTitle)
Next
Para obtener más información, vea For Each... Siguiente instrucción.

Después de la From palabra clave en un inicializador de colección. Por ejemplo:
VBCopiar
Dim days = New List(Of String) From
{
"Mo", "Tu", "We", "Th", "F", "Sa", "Su"
}
Para obtener más información, vea Inicializadores de colección.
Agregar comentarios
El código fuente no siempre se explica por sí mismo, incluso para el programador que lo
escribió. Por lo tanto, para ayudar a documentar su código, la mayoría de los
programadores hacen un uso libre de los comentarios insertados. Los comentarios en el
código pueden explicar un procedimiento o una instrucción determinada a cualquier
persona que lea o trabaje con él más adelante. Visual Basic omite los comentarios durante
la compilación y no afectan al código compilado.
Las líneas de comentario comienzan por un apóstrofo (') o REM seguido de un espacio. Se
pueden agregar en cualquier parte del código, excepto dentro de una cadena. Para anexar un
comentario a una instrucción, inserte un apóstrofo o REM después de la instrucción , seguido
del comentario . Los comentarios también pueden ir en su propia línea independiente. En el
ejemplo siguiente se muestran estas posibilidades.
VBCopiar
' This is a comment on a separate code line.
REM This is another comment on a separate code line.
x += a(i) * b(i) ' Add this amount to total.
MsgBox(statusMessage) REM Inform operator of status.
Comprobación de errores de compilación
Si, después de escribir una línea de código, la línea se muestra con un subrayado azul
ondulado (también puede aparecer un mensaje de error), se produce un error de sintaxis en
la instrucción . Debe averiguar cuál es el problema de la instrucción (al mirar en la lista de
tareas o mantener el puntero sobre el error con el puntero del mouse y leer el mensaje de
error) y corregirlo. Hasta que haya corregido todos los errores de sintaxis en el código, el
programa no se compilará correctamente.
Secciones relacionadas
Término
Operadores de asignación
Operadores y expresiones
Procedimiento Interrupción y combinación de
instrucciones en código
Procedimiento Instrucciones de etiquetas
Contenido recomendado
Definición
Proporciona vínculos a páginas de referencia de lenguaje
de asignación como =, *=y &=.
Muestra cómo combinar elementos con operadores para p
Muestra cómo dividir una sola instrucción en varias línea
instrucciones en la misma línea.
Muestra cómo etiquetar una línea de código.
Preguntas relacionadas
¿Qué se puede hacer en Visual Basic?
¿Cuáles son los comandos de Visual Basic?
¿Qué se puede hacer con Visual Basic en Excel?
¿Qué se puede hacer en Visual Studio?
Posibilidad de crear archivos ejecutables, librerías de clases, sitios webs
con el lenguaje de programación ASP.NET, aplicaciones para
dispositivos móviles, etc. Creación de aplicaciones que interaccionan con
la gran mayoría de Sistemas Gestores de Bases de Datos Relacionales y
Orientados a Objetos (SGBDROO).28 may. 2010
Comandos con argumentos
Nombre de comando
Descripción
Mostrar memoria
Muestra el contenido del intervalo de memoria especificado.
Mostrar módulos
Enumera los módulos del proceso actual.
Mostrar registros
Muestra una lista de registros.
Mostrar código fuente
Muestra las líneas de código fuente especificadas.
27 filas más
•
11 mar. 2022
Comandos - Visual Studio (Windows) | Microsoft Docs
VBA para Excel te permite automatizar los flujos de trabajo repetitivos y generar
herramientas prácticas para la gestión de proyectos o la contabilidad. La
programación VBA en Excel facilita el intercambio de datos, tablas y diagramas entre los
distintos programas de Microsoft 365 como Excel, Word o
Descargar