Q1. ¿Qué dos conjuntos de valores imprime esta función y sub?
Function GetVitals(ID AsLong, Age AsLong, Optional Weight AsLong) AsString GetVitals = "ID=" & ID & " Edad=" & Age & " Peso=" & Weight
EndFunctionSub ShowVitals()
Dim ID AsLong, Age AsLong, Weight AsLong Debug.Print GetVitals(ID:=5, Age:=20)
Debug.Print GetVitals(ID:=6, Age:=25, Weight:=130)
EndSub
:
ID=5 Edad = 20 Peso=
ID=6 Edad = 25 Peso=130
:
ID=5 Edad = 20 Peso=0
ID=6 Edad = 25 Peso=130
:
ID=5 Edad = 20 Peso=Nulo
ID=6 Edad = 25 Peso=130
:
ID=5 Edad = 20
ID=6 Edad = 25 Peso=130
Q2. Este código muestra la primera declaración de CalledSub. ¿Qué llamada funcionará correctamente?
Sub CalledSub(Apellido, Edad)
llama Calledsub "smith",26
calledsub (apellido="smith", Edad = 26)
calledsub (Apellido:="Smith", Edad:=26)
calledsub "smith", 26
Q3. ¿Cuál es la diferencia principal entre una clase y un objeto?
No hay diferencia significativa. Los términos se usan indistintamente.
Una clase declara las propiedades de un objeto. Un objeto completa la declaración definiendo eventos y métodos.
Un objeto es una plantilla para una clase.
Una clase describe el diseño de un objeto. Un objeto es una instancia de ese diseño.
Q4. ¿Qué valor muestra la declaración MsgBox?
Sub MySub(VarA AsLong, ParamArray VarB() As Variant)
MsgBox VarB(0)
EndSubSub ShowValue()
Call MySub(10, "Primer argumento", 2, 3.1416)
EndSub
2
10
Primer argumento
3.1416
Q5. ¿Qué objeto se necesita para colocar un módulo de formulario de usuario en un proyecto VBA?
módulo de código estándar asociado
UserForm
módulo de clase asociado
clase userForm
Q6. ¿Cuál es la salida?
Sub UseSum()
Dim TestArray() As Integer, Total As Integer
ReDim TestArray(1)
TestArray(1) = 6ReDim TestArray(2)
TestArray(2) = 3Total = WorksheetFunction.Sum(TestArray)
EndSub
3
0
9
6
Q7. La subrutina Driver se declara mediante Sub Driver (Y). ¿Qué declaración resulta en un error de compilación?
Driver x
call Driver(x)
call Driver x
Driver (X)
Q8. Tiene varias variables para mostrar en un formulario de usuario, y hay demasiadas variables para mostrar de una vez. ¿Qué control permite mejor al usuario ver todas las variables?
Marco
multipage
TabStrip
ListBox
Q9. A continuación se muestra una función llamada SquareIt. ¿Cuál versión de la subrutina llamada Area resulta en un error de compilación?
Function SquareIt(ByRef Basis AsInteger) AsLongSquareIt = Basis ^ 2EndFunction
sub Área()
Dim Result AsLong, Side AsIntegerSide = 5Result = Squarelt(Side)
EndSub
Sub Area()
Dim Result AsLong, Side
Side = 5Result = SquareIt(CInt(Side))
EndSub
Q10. EmailAddress() es una matriz. Se declara mediante Dim EmailAddress(10) As String, y la opción Base 1 está en efecto. ¿Cuántas filas y columnas hay en EmailAddress()?
10 filas y 10 columnas
10 filas y 1 columna
10 filas y 0 columnas
1 fila y 10 columnas
Q11. ¿Qué celda se selecciona si ejecutas este código?
Usa las siguientes reglas al nombrar procedimientos, constantes, variables y argumentos en un módulo de Visual Basic: Debes usar una letra como primer carácter. No puedes usar un espacio, un punto (.), un signo de exclamación (!) o los caracteres @, &, $, # en el nombre. El nombre no puede exceder los 255 caracteres de longitud.
Q13. ¿Cuál es una definición válida de un tipo de datos definido por el usuario?
:
Type CBC
Nombre AsStringSiguiente AsStringEndType
:
Type CBC
Nombre AsString_Siguiente AsStringEndType
:
Type CBC
Nombre AsString@Opción AsStringEndType
:
Type CBC
Nombre AsString%Para AsStringEndType
Q14. ¿Cuál es una forma de duplicar un formulario de usuario de un proyecto a otro?
:
Guarda y cierra el proyecto con el formulario de usuario existente.
Haz clic en Insertar > Archivo.
Navega hasta la ubicación del proyecto existente.
Haz clic derecho en él y selecciona el formulario de usuario que deseas duplicar.
:
Abre el formulario de usuario existente en Modo de Diseño.
Haz clic derecho en el formulario y selecciona Copiar.
Cambia al otro proyecto.
Haz clic derecho en Módulo y selecciona Pegar.
:
En el Explorador de proyectos, haz clic derecho en el formulario de usuario y selecciona Copiar.
Cambia al nuevo proyecto.
Haz clic derecho en UserForms y selecciona Pegar.
:
Abre el formulario de usuario existente en Modo de Diseño.
Haz clic en Archivo > Exportar archivo.
Cambia al otro proyecto.
Haz clic en Archivo > Importar archivo.
Q15. La grabación de una macro en Word es probablemente una grabación incompleta de las acciones del usuario. ¿Por qué?
El Grabador de macros de Word no graba acciones iniciadas por accesos directos de teclado.
El Grabador de macros de Word no admite ediciones de Buscar y Reemplazar.
El Grabador de macros de Word no graba acciones iniciadas haciendo clic en un botón en la pestaña Desarrollador de la cinta.
El Grabador de macros de Word no graba acciones que involucren la selección de texto apuntando con el puntero del mouse.
Q16. ¿Qué declaración debe preceder al controlador de errores de una subrutina?
End
Return
Exit Sub
Stop
Q17. ¿Cuántos valores puede contener MyArray?
Option Base 0
Sub BuildArray()
Dim MyArray(5) As Integer
0
32,769
5
6
Q18. ¿Qué declaración es verdadera?
Set establece un valor en una clase; Let devuelve un valor de una clase.
Let establece un valor en una clase; Set devuelve un valor de una clase.
Let establece un valor en una clase; Get devuelve un valor de una clase.
Get establece un valor en una clase; Set devuelve un valor de una clase.
Q19. Una declaración tiene un alcance, que tiene tres niveles. ¿Cuáles son?
Módulo, Proyecto y Automatización
Procedimiento, Módulo Privado y Módulo Público
Subrutina, Módulo y Proyecto
Procedimiento, Proyecto y Global
Q20. Hay dos referencias que deben seleccionarse en el Editor de Visual Basic para que se ejecute cualquier código de Visual Basic en Excel. ¿Cuáles son estas dos referencias?
Biblioteca de objetos de MS Excel y Biblioteca de objetos de MS Office
VBA y Biblioteca de objetos de MS Office
VBA y Biblioteca de objetos de Excel
Biblioteca de objetos de MS Excel y Automatización OLE
Q21. ¿Qué acción causará que tu proyecto restablezca sus variables?
Editar la lista de argumentos de la rutina actual mientras se está en modo de depuración.
Hacer clic en Fin en un cuadro de diálogo de error en tiempo de ejecución.
Agregar un control ActiveX a una hoja de cálculo.
todas estas respuestas
Q22. ¿Qué combinación de teclas hace que VBE localice la declaración de una procedimiento?
Shift+F3
Alt+F (Windows) o Option+F (Mac)
Shift+F2
Ctrl+F (Windows) o Command+F (Mac)
Q23. Cuando defines una nueva clase de objeto, ¿dónde le asignas un nombre?
en el nombre del módulo de clase
en el código del módulo de clase
en el código de un módulo estándar
en las Propiedades de un módulo estándar
Q24. ¿Cómo indica un módulo de clase que utiliza una interfaz particular?
La interfaz misma es parte del módulo de clase.
mediante la palabra clave Interface y el nombre de la interfaz
mediante la palabra clave Implements y el nombre de la interfaz
El nombre de la interfaz se pasa como parámetro.
Q25. ¿Qué se necesita para que el contenido de Module1 esté disponible para otros módulos en un proyecto VBA, pero no para ningún otro proyecto VBA?
Establecer la Opción Global en la parte superior de Module1
Declarar variables a nivel de módulo como Privadas
Establecer el Alcance del nivel de módulo en la parte superior de Module1
Establecer la Opción Módulo Privado en la parte superior de Module1
Q26. Cuando se usa con una matriz llamada MyArray, ¿cuál es la forma preferida de establecer los valores de inicio y finalización de una variable de control de bucle?
Para i = 0 A UBound(MyArray,1)
Para i = 1 A UBound(MyArray,1)
Para i = LBound(MyArray,1) A UBound(MyArray,1)
Depende de si se está utilizando Option Base 0 u Option Base 1.
Q29. Para utilizar código VBA para mantener un proyecto VBA diferente, puedes hacer uso de la extensibilidad de VBA. ¿Qué se necesita para habilitar la extensibilidad?
Establecer la Seguridad de macros en Confiar en el acceso al modelo de objetos de proyecto VBA
El libro de trabajo del proyecto debe estar protegido en la pestaña Revisar de la cinta
Incluir una referencia a Microsoft VBA Extensibility 5.3
Incluir una referencia a Microsoft VBA Extensibility 5.3 y establecer la Seguridad de macros en Confiar en el acceso al modelo de objetos
de proyecto VBA
Q30. ¿Cómo se agrega un formulario de usuario a un proyecto VBA?
:
Selecciona el proyecto en la ventana Proyecto del Editor de Visual Basic.
Haz clic en el botón Modo de Diseño y selecciona Modo de inserción.
:
Selecciona el proyecto en la ventana Proyecto del Editor de Visual Basic.
Haz clic en el botón Caja de herramientas y selecciona UserForm.
:
Selecciona el proyecto en la ventana Proyecto del Editor de Visual Basic.
Haz clic derecho en el menú Ejecutar y selecciona Personalizar.
:
Selecciona el proyecto en la ventana Proyecto del Editor de Visual Basic.
Haz clic en Insertar > UserForm.
Q31. Se requiere la declaración explícita de variables. MyVar está declarada tanto a nivel de módulo como de procedimiento. ¿Cuál es el valor de MyVar después de que primero AAA() y luego BBB() se ejecuten?
Dim MyVar AsStringSub AAA()
Dim MyVar AsStringMyVar = "Ámbito del procedimiento AAA"EndSubSub BBB()
MyVar = "Ámbito del procedimiento BBB"EndSub
MyVar es igual a "Ámbito del procedimiento AAA"
IsNull(MyVar) es VERDADERO
MyVar es igual a "Ámbito del procedimiento BBB"
MyVar es NULO
Q32. ¿Qué bloque de código de los módulos de clase devuelve un error de compilación?
Q33. Si el código VBA declara FileCount como una constante en lugar de una variable, tiende a ejecutarse más rápido. ¿Por qué?
El alcance de las constantes está limitado al procedimiento que las declara.
Las constantes se declaran en tiempo de ejecución, pero las variables se declaran en tiempo de compilación.
Una vez declarado en un proyecto, el valor de una constante no puede cambiarse. No es necesario buscar el valor actual de FileCount cuando es una constante.
La declaración Const especifica el tipo más eficiente dada el valor constante.
Q34. Un proyecto VBA debe declarar cuatro clases. ¿Cuántos módulos de clase son necesarios?
Dos (uno para las propiedades y otro para los métodos)
Uno (cada clase se declara en el mismo módulo)
Cuatro (uno para cada clase)
Los necesarios según los tipos de variables que devuelvan los objetos
Q35. ¿Qué muestra este código?
Sub MakeErrors()
Dim Y As Variant, Z As Variant
OnErrorResumeNextY = 1 / 0MsgBox "Y = " & Y
OnErrorGoTo0Z - (0 - 3) ^ 0.5MsgBox "Z = " & Z
EndSub
Un mensaje de error
Y y Z
Z = en un cuadro de mensaje y luego un mensaje de error subsiguiente
Y = en un cuadro de mensaje y luego un mensaje de error subsiguiente
Q36. El bloque de código VBA que se muestra en las cuatro opciones se ejecuta cuando se hace clic en el botón CommandButton1 de UserForm1. ¿Cuál bloque de código deja UserForm1 cargado pero no visible hasta que la función FoundErrors lo haya revisado y luego permite que el procesamiento continúe si no se encuentran errores?
:
PrivateSub CommandButton1_Click()
If FoundErrors(Me) Then _
Me.Show
EndSub
:
Private Sub CommandButton1_Click()IfNot FoundErrors(UserForm1) Then _
Unload UserForm1End Sub
Q38. ¿Por qué este código genera un error "Subscript fuera del intervalo"?
Sub Example()
Dim MyArr() As Variant
ReDim MyArr(3, 4)
'some codeReDimPreserve MyArr(4, 4)
EndSub
Los arrays no pueden redimensionarse más de una vez.
MyArr fue declarado originalmente con tres "filas".
Solo puedes redimensionar la última dimensión de un array cuando especificas ReDim Preserve.
La sintaxis correcta es ReDim Preserve MyArr(0 To 4, 0 To 4).
Q39. ¿Qué declaración de subrutina no causa un error de compilación?
Sub Called(Salary As Long, ParamArray Vals() As Variant)
Sub Called(ParamArray Vals() As Variant, Salary As Long)
Sub Called(Optional Salary As Long, ParamArray Vals() As Variant)
Sub Called(Salary As Long, ParamArray Vals() As String)
Q40. ¿Cómo puede un usuario ingresar datos en una hoja de cálculo o documento, o cambiar de ventana, mientras UserForm1 se muestra en la pantalla?
Mostrar el formulario con esta declaración: UserForm1.Show vbModal
Incluir esta declaración en el código: UserForm1.Hwnd = False.
Configurar la propiedad SpecialEffect del formulario de usuario en frmShowModal.
Configurar la propiedad ShowModal del formulario de usuario en Falso.
Q41. SubA pasa MyVar a SubB. ¿Cómo puedes asegurarte de que MyVar tenga su valor original cuando el control regrese a SubA?
Declarar SubB como Sub SubB(ByRef MyVar).
Declarar SubB como Sub SubB(MyVar).
Declarar SubB como Sub SubB(Static MyVar).
Declarar SubB como Sub SubB(ByVal MyVar).
Q42. ¿Cuál declaración de procedimiento es sintácticamente correcta?
:
Sub My
Sub(VarA AsString, Optional VarB _
As Variant, Optional VarC AsLong)
:
Sub MySub(VarA AsString, Optional VarB _
As Variant, VarC AsLong)
:
Sub MySub(Optional VarA AsString, Optional VarB _
As Variant, VarC asLong)
:
Sub MySub(OPtional VarA AsString, VarB _
As Variant, Optional VarC asLong)
Q43. ¿Cuáles son los dos tipos principales de procedimientos en VBA?
Función y Evento
Función y Alcance
Subrutina y Evento
Subrutina y Función
Q44. ¿Qué bloque de código compila sin error?
Sub Decs() Dim MyFixed As String * 0 MyFixed = "A" MsgBox MyFixed End Sub
Sub Decs() Dim MyInt% * 1 MyInt = 7 MsgBox MyInt End Sub
Sub Decs() Dim MyInt% As Integer * 1 MyInt = 5 MsgBox MyInt End Sub
Sub Decs() Dim MyInt, MyNum As Integer MyInt = "A" MsgBox MyInt End Sub
Q45. ¿Qué se utiliza en la ventana Inmediato para mostrar el valor actual de la variable CountValues?
= CountValues= CountValues
| CountValues| CountValues
: CountValues: CountValues
? CountValues? CountValues
Q46. ¿En qué nivel puedes declarar una variable de esta manera: Private TopSecret As String?
Función
Módulo
Subrutina
Procedimiento
Q47. ¿Cómo puede un usuario ingresar datos en una hoja de cálculo o documento, o cambiar de ventana, mientras UserForm1 se muestra en la pantalla?
Mostrar el formulario con esta declaración: UserForm1.Show vbModal.
Configurar la propiedad SpecialEffect del formulario de usuario en frmShowModal.
Incluir esta declaración en el código: UserForm1.Hwnd = False.
Configurar la propiedad ShowModal del formulario de usuario en Falso.
Q48. SubA pasa MyVar a SubB. ¿Cómo puedes asegurarte de que MyVar tenga su valor original cuando el control regrese a SubA?
Declarar SubB como Sub SubB(Static MyVar).
Declarar SubB como Sub SubB(ByVal MyVar).
Declarar SubB como Sub SubB(MyVar).
Declarar SubB como Sub SubB(ByRef MyVar).
Q49. Los arrays no pueden redimensionarse más de una vez.
Sub Example() Dim MyArr() As Variant ReDim MyArr(3, 4) 'some code ReDim Preserve MyArr(4, 4)EndSubSub Example() Dim MyArr() As Variant ReDim MyArr(3, 4) 'some code ReDim Preserve MyArr(4, 4) End Sub
La sintaxis correcta es ReDim Preserve MyArr(0 To 4, 0 To 4).
Solo puedes redimensionar la última dimensión de un array cuando especificas ReDim Preserve.
MyArr fue declarado originalmente con tres "filas".
Declarar SubB como Sub SubB(ByRef MyVar).
Q50. ¿Qué bloque de código termina con la variable i igual a 5 y la variable X igual a 10?
:
DoX = X + 1
i = i + 1
Loop Until i < 5
End Sub
:
Sub Loopi()
Dim X AsInteger, i AsIntegerFor i = 1To5X = X + 1Next I
EndSub
:
Sub Loopi()
Dim X AsInteger, i AsIntegerDoUntil i < 5X = X + 1i = i + 1LoopEndSub
:
Sub Loopi()
Dim X AsInteger, i AsIntegerDoX = X + 1i = i + 1LoopWhile i < 5EndSub
Q51. ¿Cómo indica un módulo de clase que utiliza una interfaz particular?
mediante la palabra clave Implements y el nombre de la interfaz.
mediante la palabra clave Interface y el nombre de la interfaz.
El nombre de la interfaz se pasa como parámetro.
La interfaz en sí misma es parte del módulo de clase.
Q52. ¿Qué parte del Editor de Visual Basic para Aplicaciones (VBE) puede ayudarte a explorar la sintaxis de VBA?
Ventana Locals
Explorador de objetos
Explorador de proyectos
Cuadro de diálogo opcional
Q53. Este código intenta establecer una nueva colección que consiste en nombres y números de empleados. Assoc es una clase. ¿Qué declaración falta en el código?
Dim Associates As Collection, Assoc As CAssoc, i AsByteFor i = 1To200Set Assoc = New CAssoc
Assoc.Name = Cells(i,1)
Assoc.Number = Cells(i,2)
Associates.Add Assoc
Next i
Set Associates = New Collection
Set Associates = Collection
Redim(Associates(Associates.Count+1))
Redim(Associates _ (Unbound(Associates)+1))
Q54. ¿Cuál es el término estándar para una variable o valor que se pasa de una subrutina o función a otra?
referencia
elemento
argumento
atributo
Q55. ¿Cuál es el término estándar para una variable o valor que se pasa de una subrutina o función a otra?
referencia
elemento
argumento
atributo
Q56. ¿Dónde se encuentra el procedimiento de evento denominado Worksheet_Change?
en cualquier módulo de código estándar
en el módulo de objeto de la hoja de cálculo
en el módulo de clase Worksheet_Change
en el módulo de código del libro de trabajo
Q57.
Estás creando un procedimiento de evento para una hoja de cálculo, y editas la lista de argumentos en la declaración Sub del procedimiento de evento. ¿Qué sucede cuando se ejecuta el procedimiento de evento?
No hay diferencia en comparación con los resultados de un procedimiento estándar.
Los resultados son impredecibles.
El procedimiento no se compila.
El procedimiento genera un error en tiempo de ejecución.
Q58. Basándote en este código, ¿qué procedimiento llama a la subrutina SumCosts correctamente?
Sub Sumosts(AcctName AsString, Amount AsLong)
Range("A1") = AcctName
EndSub
Q59. Quieres declarar un objeto que describa coches para que tu código VBA pueda aplicar pruebas como la siguiente. ¿Qué palabra clave usas para declarar Cars?
If Cars(1).Make="Ford" And Cars (1).MPG > 20 Then Cars(1).Selected = True
Dataframe
Type
object
Variant
Q60. ¿Cuál es el propósito de la porción .Range("A1:E5").Select de esta declaración?
ActiveCell.Offset(3,4).Range("A1:E5").Select
Si especifica el rango que se seleccionará después de que se encuentre el desplazamiento.
especifica el rango de celdas en el que se escribirán los contenidos del desplazamiento.
Proporciona información de Resize, en este caso, el desplazamiento devuelve una referencia de cinco filas y cinco columnas.
Especifica el rango de celdas en el que se basará el desplazamiento.
Q61. En Excel, ¿cuál es el efecto de las dos declaraciones a continuación?