Q1. Quels sont les deux ensembles de valeurs imprimés par cette fonction et cette sous-procédure ?
Function GetVitals(ID AsLong, Age AsLong, Optional Weight AsLong) AsString GetVitals="ID=" & ID &"Age=" & Age & "Weight=" & 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 Age = 20 Weight=
ID=6 Age = 25 Weight=130
:
ID=5 Age = 20 Weight=0
ID=6 Age = 25 Weight=130
:
ID=5 Age = 20 Weight=Null
ID=6 Age = 25 Weight=130
:
ID=5 Age = 20
ID=6 Age = 25 Weight=130
Q2. Ce code montre la première instruction de CalledSub. Quelle instruction d'appel fonctionnera correctement ?
Sub CalledSub(Surname, Age)
call Calledsub "smith",26
calledsub (surname="smith", Age = 26)
calledsub (Surname:="Smith", Age:=26)
calledsub "smith", 26
Q3. Quelle est la principale différence entre une classe et un objet ?
Il n'y a pas de différence significative. Les termes sont utilisés de manière interchangeable.
Une classe déclare les propriétés d'un objet. Un objet complète la déclaration en définissant des événements et des méthodes.
Un objet est un modèle pour une classe.
Une classe décrit la conception d'un objet. Un objet est une instance de cette conception.
Q4. Quelle valeur affiche l'instruction MsgBox ?
Sub MySub(VarA AsLong, ParamArray VarB() As Variant)
MsgBox VarB(0)
EndSubSub ShowValue()
Call MySub(10, "First arg", 2, 3.1416)
EndSub
2
10
First arg
3.1416
Q5. De quel objet avez-vous besoin pour mettre un module UserForm dans un projet VBA ?
module de code standard associé
UserForm
module de classe associé
classe UserForm
Q6. Quelle est la sortie ?
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 sous-routine Driver est déclarée par Sub Driver (Y). Quelle instruction provoque une erreur de compilation ?
Driver x
call Driver(x)
call Driver x
Driver (X)
Q8. Vous avez plusieurs variables à afficher sur un formulaire utilisateur, et il y a trop de variables à afficher en une seule fois. Quel contrôle permet le mieux à l'utilisateur de voir toutes les variables ?
Cadre
multipage
TabStrip
ListBox
Q9. Ci-dessous se trouve une fonction nommée SquareIt. Quelle version de la sous-routine nommée Area entraîne une erreur de compilation ?
Function SquareIt(ByRef Basis AsInteger) AsLongSquareIt = Basis ^ 2EndFunction
sub Area()
Dim Result AsLong, Side AsIntegerSide = 5Result = Squarelt(Side)
EndSub
Sub Area()
Dim Result AsLong, Side
Side = 5Result = SquareIt(Cint(Side))
EndSub
Q10. EmailAddress() est un tableau. Il est déclaré par Dim EmailAddress(10) As String, et l'option Base 1 est en vigueur. Combien de lignes et de colonnes y a-t-il dans EmailAddress() ?
10 lignes et 10 colonnes
10 lignes et 1 colonne
10 lignes et 0 colonnes
1 ligne et 10 colonnes
Q11. Quelle cellule est sélectionnée si vous exécutez ce code ?
Utilisez les règles suivantes lorsque vous nommez des procédures, des constantes, des variables et des arguments dans un module Visual Basic : Vous devez utiliser une lettre comme premier caractère. Vous ne pouvez pas utiliser d'espace, de point (.), de point d'exclamation (!) ou les caractères @, &, $, # dans le nom. Le nom ne peut pas dépasser 255 caractères de long.
Q13. Quelle est une définition valide d'un type de données défini par l'utilisateur ?
:
Type CBC
NameAsStringNext AsStringEndType
:
Type CBC
NameAsString_Next AsStringEndType
:
Type CBC
NameAsString@Option AsStringEndType
:
Type CBC
NameAsString%ForAsStringEndType
Q14. Quelle est une manière de dupliquer un formulaire utilisateur d'un projet dans un autre projet ?
:
Enregistrez et fermez le projet avec le formulaire utilisateur existant.
Cliquez sur Insertion > Fichier.
Accédez à l'emplacement du projet existant.
Cliquez dessus avec le bouton droit et sélectionnez le formulaire utilisateur que vous souhaitez dupliquer.
[
] :
Ouvrez le formulaire utilisateur existant en mode Création.
Cliquez avec le bouton droit sur le formulaire et sélectionnez Copier.
Basculez vers l'autre projet.
Cliquez avec le bouton droit sur Module et sélectionnez Coller.
:
Dans l'Explorateur de projets, cliquez avec le bouton droit sur le formulaire utilisateur et sélectionnez Copier.
Basculez vers le nouveau projet.
Cliquez avec le bouton droit sur UserForms et sélectionnez Coller.
:
Ouvrez le formulaire utilisateur existant en mode Création.
Cliquez sur Fichier > Exporter le fichier.
Basculez vers l'autre projet.
Cliquez sur Fichier > Importer le fichier.
Q15. L'enregistrement d'une macro dans Word est susceptible d'être un enregistrement incomplet des actions de l'utilisateur. Pourquoi ?
L'enregistreur de macros de Word ne prend pas en compte les actions initiées par des raccourcis clavier.
L'enregistreur de macros de Word ne prend pas en charge les éditions Rechercher et Remplacer.
L'enregistreur de macros de Word ne prend pas en compte les actions initiées en cliquant sur un bouton dans l'onglet Développeur du Ruban.
L'enregistreur de macros de Word ne prend pas en compte les actions impliquant la sélection de texte en pointant avec le pointeur de la souris.
Q16. Quelle instruction doit précéder le gestionnaire d'erreurs d'une sous-routine ?
End
Return
Exit Sub
Stop
Q17. Combien de valeurs peut MyArray contenir ?
Option Base 0
Sub BuildArray()
Dim MyArray(5) As Integer
0
32,769
5
6
Q18. Quelle affirmation est vraie ?
Set établit une valeur dans une classe ; Let retourne une valeur d'une classe.
Let établit une valeur dans une classe ; Set retourne une valeur d'une classe.
Let établit une valeur dans une classe ; Get retourne une valeur d'une classe.
Get établit une valeur dans une classe ; Set retourne une valeur d'une classe.
Q19. Une déclaration a une portée, qui comporte trois niveaux. Quels sont-ils ?
Module, Projet et Automatisation
Procédure, Module privé et Module public
Routine, Module et Projet
Procédure, Projet et Global
Q20. Il y a deux références qui doivent être sélectionnées dans l'Éditeur VBA pour que tout code Visual Basic fonctionne dans Excel. Quelles sont ces deux références ?
Bibliothèque d'objets MS Excel et Bibliothèque d'objets MS Office
VBA et Bibliothèque d'objets MS Office
VBA et Bibliothèque d'objets Excel
Bibliothèque d'objets MS Excel et Automatisation OLE
Q21. Quelle action provoque la réinitialisation des variables de votre projet ?
Modifier la liste des arguments de la routine en cours en mode de débogage.
Cliquer sur Fin dans une boîte de dialogue d'erreur d'exécution.
Ajouter un contrôle ActiveX à une feuille de calcul.
toutes ces réponses
Q22. Quel raccourci clavier permet à VBE de localiser la déclaration d'une procédure ?
Maj+F3
Alt+F (Windows) ou Option+F (Mac)
Maj+F2
Ctrl+F (Windows) ou Command+F (Mac)
Q23. Lorsque vous définissez une nouvelle classe d'objet, où lui attribuez-vous un nom ?
dans le nom du module de classe
dans le code du module de classe
dans le code d'un module standard
dans les propriétés d'un module standard
Q24. Comment une classe indique-t-elle qu'elle utilise une interface particulière ?
L'interface elle-même fait partie du module de classe.
au moyen du mot-clé Interface et du nom de l'interface
au moyen du mot-clé Implements et du nom de l'interface
Le nom de l'interface est passé en tant que paramètre.
Q25. Que faut-il pour que le contenu du Module1 soit disponible pour d'autres modules dans un projet VBA, mais pas pour aucun autre projet VBA ?
Définir l'option Globale en haut de Module1
Déclarer les variables de niveau de module comme Privées
Définir la Portée de Niveau de Module en haut de Module1
Définir l'option Module Privé en haut de Module1
Q26. Lorsqu'il est utilisé avec un tableau nommé MyArray, quelle est la manière préférée de définir les valeurs de début et de fin d'une variable de contrôle de boucle ?
Pour i = 0 à UBound(MyArray,1)
Pour i = 1 à UBound(MyArray,1)
Pour i = LBound(MyArray,1) à UBound(MyArray,1)
Cela dépend de l'utilisation de l'option Base 0 ou de l'option Base 1.
Q29. Pour utiliser du code VBA pour maintenir un projet VBA différent, vous pouvez utiliser l'extensibilité de VBA. Que faut-il pour activer l'extensibilité ?
%OPTION% Définir la sécurité des macros sur Faire confiance à l'accès à l'objet modèle de projet VBA
%OPTION% Le classeur du projet doit être protégé dans l'onglet Révision du Ruban
%OPTION% Inclure une référence à Microsoft VBA Extensibility 5.3
%OPTION% Inclure une référence à Microsoft VBA Extensibility 5.3 et définir la sécurité des macros sur Faire confiance à l'accès à l'objet modèle de projet VBA
Q30. Comment ajoutez-vous un formulaire utilisateur à un projet VBA ?
:
Sélectionnez le projet dans la fenêtre Projet de l'Éditeur VBA.
Cliquez sur le bouton Mode Création et sélectionnez le mode Insertion.
:
Sélectionnez le projet dans la fenêtre Projet de l'Éditeur VBA.
Cliquez sur le bouton Boîte à outils et sélectionnez UserForm.
:
Sélectionnez le projet dans la fenêtre Projet de l'Éditeur VBA.
Cliquez avec le bouton droit sur le menu Exécuter et sélectionnez Personnaliser.
:
Sélectionnez le projet dans la fenêtre Projet de l'Éditeur VBA.
Cliquez sur Insérer > UserForm.
Q31. La déclaration explicite des variables est requise. MyVar est déclaré à la fois au niveau du module et de la procédure. Quelle est la valeur de MyVar après l'exécution de d'abord AAA() puis de BBB() ?
Dim MyVar AsStringSub AAA()
Dim MyVar AsStringMyVar = "Scope de la procédure AAA"EndSubSub BBB()
MyVar = "Scope de la procédure BBB"EndSub
MyVar équivaut à "Scope de la procédure AAA"
ISNULL(MyVar) est TRUE
MyVar équivaut à "Scope de la procédure BBB"
MyVar est NULL
Q32. Quel bloc de code dans les modules de classe génère une erreur de compilation ?
Q33. Si le code VBA déclare FileCount comme une constante plutôt qu'une variable, le code a tendance à s'exécuter plus rapidement. Pourquoi ?
La portée des constantes est limitée à la procédure qui les déclare.
Les constantes sont déclarées au moment de la compilation, mais les variables sont déclarées au moment de l'exécution.
Une fois déclarée dans un projet, la valeur d'une constante ne peut pas être modifiée. Il n'est donc pas nécessaire de rechercher la valeur actuelle de FileCount lorsque c'est une constante.
La déclaration Const spécifie le type le plus efficace compte tenu de la valeur de la constante.
Q34. Un projet VBA doit déclarer quatre classes. Combien de modules de classe sont nécessaires ?
Deux (un pour les propriétés et un pour les méthodes).
Un (chaque classe est déclarée dans le même module).
Quatre (un pour chaque classe).
Autant que nécessaire en fonction des types de variables que les objets retournent.
Q35. Que fait ce code ?
Sub MakeErrors()
Dim Y As Variant, Z As Variant
OnErrorResumeNextY = 1 / 0MsgBox "Y = " & Y
OnErrorGoTo0Z - (0 - 3) ^ 0.5MsgBox "Z = " & Z
EndSub
Un message d'erreur
Y et Z
Z = dans une boîte de message, suivi d'un message d'erreur ultérieur
Y = dans une boîte de message, suivi d'un message d'erreur ultérieur
Q36. Le bloc de code VBA présenté dans les quatre options s'exécute lorsque le bouton CommandButton1 de UserForm1 est cliqué. Quel bloc de code laisse UserForm1 chargé mais pas visible jusqu'à ce que la fonction FoundErrors l'ait vérifié, puis permet à l'exécution de continuer si aucune erreur n'est trouvée ?
:
PrivateSub CommandButton1_Click()
If FoundErrors(Me) Then _
Me.Show
EndSub
:
Private Sub CommandButton1_Click()IfNot FoundErrors(UserForm1) Then _
Unload UserForm1End Sub
Q38. Pourquoi ce code génère-t-il une erreur "Souscripteur hors limites" ?
Sub Example()
Dim MyArr() As Variant
ReDim MyArr(3, 4)
'some codeReDimPreserve MyArr(4, 4)
EndSub
Les tableaux ne peuvent pas être redimensionnés plus d'une fois.
MyArr a été déclaré à l'origine avec trois "lignes".
Vous ne pouvez redimensionner que la dernière dimension d'un tableau lorsque vous spécifiez ReDim Preserve.
La syntaxe correcte est ReDim Preserve MyArr(0 To 4, 0 To 4).
Q39. Quelle déclaration de sous-routine ne provoque pas d'erreur de compilation ?
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. Comment un utilisateur peut-il saisir des données sur une feuille de calcul ou un document, ou passer d'une fenêtre à l'autre, tout en affichant UserForm1 à l'écran ?
Affichez le formulaire avec l'instruction suivante : UserForm1.Show vbModal
Incluez cette instruction dans le code : UserForm1.Hwnd = False.
Définissez la propriété SpecialEffect du formulaire utilisateur sur frmShowModal.
Définissez la propriété ShowModal du formulaire utilisateur sur False.
Q41. SubA transmet MyVar à SubB. Comment pouvez-vous vous assurer que MyVar a sa valeur d'origine lorsque le contrôle revient à SubA ?
Déclarez SubB comme Sub SubB
(ByRef MyVar).
Déclarez SubB comme Sub SubB(MyVar).
Déclarez SubB comme Sub SubB(Static MyVar).
Déclarez SubB comme Sub SubB(ByVal MyVar).
Q42. Quelle déclaration de procédure est syntaxiquement correcte ?
:
Sub MySub(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. Quels sont les deux types principaux de procédures en VBA ?
Fonction et Événement
Fonction et Portée
Sous-routine et Événement
Sous-routine et Fonction
Q44. Quel bloc de code compile sans erreur ?
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. Que doit-on utiliser dans la fenêtre Immediate pour afficher la valeur actuelle de la variable CountValues ?
? CountValues? CountValues
Q46. À quel niveau pouvez-vous déclarer une variable de cette manière : Private TopSecret As String ?
Fonction
Module
Sous-routine
Procédure
Q47. Comment un utilisateur peut-il saisir des données sur une feuille de calcul ou un document, ou passer d'une fenêtre à l'autre, tout en affichant UserForm1 à l'écran ?
Affichez le formulaire avec cette instruction : UserForm1.Show vbModal.
Définissez la propriété SpecialEffect du formulaire utilisateur sur frmShowModal.
Incluez cette instruction dans le code : UserForm1.Hwnd = False.
Définissez la propriété ShowModal du formulaire utilisateur sur False.
Q48. SubA transmet MyVar à SubB. Comment pouvez-vous vous assurer que MyVar a sa valeur d'origine lorsque le contrôle revient à SubA ?
Déclarez SubB comme Sub SubB(Static MyVar).
Déclarez SubB comme Sub SubB(ByVal MyVar).
Déclarez SubB comme Sub SubB(MyVar).
Déclarez SubB comme Sub SubB(ByRef MyVar).
Q49. Les tableaux ne peuvent pas être redimensionnés plus d'une fois.
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 syntaxe correcte est ReDim Preserve MyArr(0 To 4, 0 To 4).
Vous ne pouvez redimensionner que la dernière dimension d'un tableau lorsque vous spécifiez ReDim Preserve.
MyArr a été déclaré à l'origine avec trois "lignes".
Déclarez SubB comme Sub SubB(ByRef MyVar).
Q50. Quel bloc de code termine avec la variable i égale à 5 et la variable X égale à 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. Comment un module de classe indique-t-il qu'il utilise une interface particulière ?
Par le biais du mot clé Implements et le nom de l'interface.
Par le biais du mot clé Interface et le nom de l'interface.
Le nom de l'interface est passé en tant que paramètre.
L'interface elle-même fait partie du module de classe.
Q52. Quelle partie de l'EDI VBA peut vous aider à explorer la syntaxe VBA ?
Fenêtres Locales
Explorateur d'objets
Explorateur de projets
Boîte de dialogue optionnelle
Q53. Ce code tente d'établir une nouvelle collection comprenant des noms et des numéros d'employés. Assoc est une classe. Quelle instruction manque dans le code ?
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. Quel est le terme standard pour une variable ou une valeur qui est transmise d'une sous-routine ou d'une fonction à une autre ?
Référence
Élément
Argument
Attribut
Q55. Quel est le terme standard pour une variable ou une valeur qui est transmise d'une sous-routine ou d'une fonction à une autre ?
Référence
Élément
Argument
Attribut
Q56. Où se trouve la procédure événementielle nommée Worksheet_Change ?
Dans n'importe quel module de code standard
Dans le module d'objet de la feuille de calcul
Dans le module de classe Worksheet_Change
Dans le module de code du classeur
Q57. Vous construisez une procédure événementielle pour une feuille de calcul, et vous modifiez la liste d'arguments dans l'instruction Sub de la procédure événementielle. Que se passe-t-il lorsque la procédure événementielle s'exécute ?
Il n'y a pas de différence par rapport aux résultats d'une procédure standard.
Les résultats sont imprévisibles.
La procédure ne se compilera pas.
La procédure génère une erreur d'exécution.
Q58. Sur la base de ce code, quelle procédure appelle la sous-routine SumCosts correctement ?
Sub Sumosts(AcctName AsString, Amount AsLong)
Range("A1") = AcctName
EndSub
Q59. Vous voulez déclarer un objet qui décrit des voitures afin que votre code VBA puisse appliquer des tests tels que celui-ci. Quel mot clé utilisez-vous pour déclarer Cars ?
If Cars(1).Make="Ford" And Cars (1).MPG > 20 Then Cars(1).Selected = True
Dataframe
Type
Object
Variant
Q60. Quel est le but de la partie .Range("A1:E5").Select de cette instruction ?
ActiveCell.Offset(3,4).Range("A1:E5").Select
Si spécifie la plage qui doit être sélectionnée après que le décalage est trouvé.
Elle spécifie la plage de cellules dans laquelle les contenus du décalage doivent être écrits.
Elle fournit des informations de redimensionnement - dans ce cas, le décalage retourne une référence de cinq lignes et cinq colonnes.
Elle spécifie la plage de cellules à partir de laquelle le décalage doit être basé.
Q61. Dans Excel, quel est l'effet des deux instructions ci-dessous ?