Q1. Welche zwei Wertesätze gibt diese Funktion und dieses Unterprogramm aus?
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 Alter = 20 Gewicht=
ID=6 Alter = 25 Gewicht=130
:
ID=5 Alter = 20 Gewicht=0
ID=6 Alter = 25 Gewicht=130
:
ID=5 Alter = 20 Gewicht=Null
ID=6 Alter = 25 Gewicht=130
:
ID=5 Alter = 20
ID=6 Alter = 25 Gewicht=130
Q2. Dieser Code zeigt die erste Anweisung von CalledSub. Welcher Aufruf wird ordnungsgemäß funktionieren?
Sub CalledSub(Surname, Age)
Aufruf Calledsub "smith",26
calledsub (surname="smith", Age = 26)
calledsub (Surname:="Smith", Age:=26)
calledsub "smith", 26
Q3. Was ist der Hauptunterschied zwischen einer Klasse und einem Objekt?
Es gibt keinen bedeutenden Unterschied. Die Begriffe werden austauschbar verwendet.
Eine Klasse deklariert die Eigenschaften eines Objekts. Ein Objekt vervollständigt die Deklaration durch die Definition von Ereignissen und Methoden.
Ein Objekt ist eine Vorlage für eine Klasse.
Eine Klasse beschreibt das Design eines Objekts. Ein Objekt ist eine Instanz dieses Designs.
Q4. Welchen Wert zeigt die MsgBox-Anweisung an?
Sub MySub(VarA AsLong, ParamArray VarB() As Variant)
MsgBox VarB(0)
EndSubSub ShowValue()
Call MySub(10, "First arg", 2, 3.1416)
EndSub
2
10
Erster arg
3.1416
Q5. Welches Objekt wird benötigt, um ein Userform-Modul in einem VBA-Projekt einzufügen?
zugehöriges Standardcode-Modul
UserForm
zugehöriges Klassenmodul
UserForm-Klasse
Q6. Was ist die Ausgabe?
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. Die Treiberunterprozedur wird durch Sub Driver (Y) deklariert. Welche Aussage führt zu einem Kompilierungsfehler?
Fahrer x
rufen Fahrer(x) auf
rufen Fahrer x auf
Fahrer (X)
Q8. Sie haben mehrere Variablen, die auf einem Benutzerformular angezeigt werden sollen, und es gibt zu viele Variablen, um sie auf einmal anzuzeigen. Welche Steuerelemente ermöglichen es dem Benutzer am besten, alle Variablen zu sehen?
Rahmen
mehrseitig
TabStrip
ListBox
Q9. Unten ist eine Funktion namens SquareIt. Welche Version der Unterprozedur namens Area führt zu einem Kompilierungsfehler?
Function SquareIt(ByRef Basis AsInteger) AsLongSquareIt = Basis ^ 2EndFunction
sub Bereich()
Dim Ergebnis AsLong, Seite AsIntegerSeite = 5Ergebnis = Squarelt(Seite)
EndSub
Sub Bereich()
Dim Ergebnis AsLong, Seite
Seite = 5Ergebnis = SquareIt(Cint(Seite))
EndSub
Q10. EmailAddress() ist ein Array. Es wird durch Dim EmailAddress(10) As String deklariert, und Option Base 1 ist wirksam. Wie viele Zeilen und Spalten hat EmailAddress()?
10 Zeilen und 10 Spalten
10 Zeilen und 1 Spalte
10 Zeilen und 0 Spalten
1 Zeile und 10 Spalten
Q11. Welche Zelle wird ausgewählt, wenn Sie diesen Code ausführen?
Verwenden Sie die folgenden Regeln, wenn Sie Prozeduren, Konstanten, Variablen und Argumente in einem Visual Basic-Modul benennen: Sie müssen einen Buchstaben als ersten Zeichen verwenden. Sie können kein Leerzeichen, Punkt (.), Ausrufezeichen (!) oder die Zeichen @, &, $, # im Namen verwenden. Der Name darf maximal 255 Zeichen lang sein.
Q13. Was ist eine gültige Definition eines benutzerdefinierten Datentyps?
:
Typ CBC
NameAsStringNext AsStringEnd Typ
:
Typ CBC
NameAsString_Next AsStringEnd Typ
:
Typ CBC
NameAsString@Option AsStringEnd Typ
:
Typ CBC
NameAsString%ForAsStringEnd Typ
Q14. Wie kann ein Ben
utzerformular von einem Projekt in ein anderes Projekt dupliziert werden?
:
Speichern und schließen Sie das Projekt mit dem vorhandenen Benutzerformular.
Klicken Sie auf Einfügen > Datei.
Navigieren Sie zum Speicherort des vorhandenen Projekts.
Klicken Sie mit der rechten Maustaste darauf und wählen Sie das Benutzerformular aus, das Sie duplizieren möchten.
:
Öffnen Sie das vorhandene Benutzerformular im Entwurfsmodus.
Klicken Sie mit der rechten Maustaste auf das Formular und wählen Sie Kopieren.
Wechseln Sie zum anderen Projekt.
Klicken Sie mit der rechten Maustaste auf Modul und wählen Sie Einfügen.
:
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Benutzerformular und wählen Sie Kopieren.
Wechseln Sie zum neuen Projekt.
Klicken Sie mit der rechten Maustaste auf Benutzerformulare und wählen Sie Einfügen.
:
Öffnen Sie das vorhandene Benutzerformular im Entwurfsmodus.
Klicken Sie auf Datei > Datei exportieren.
Wechseln Sie zum anderen Projekt.
Klicken Sie auf Datei > Datei importieren.
Q15. Die Aufzeichnung eines Makros in Word ist wahrscheinlich eine unvollständige Aufzeichnung der Aktionen des Benutzers. Warum?
Word's Makrorekorder zeichnet keine Aktionen auf, die durch Tastenkombinationen ausgelöst werden.
Word's Makrorekorder unterstützt keine Such- und Ersetzen-Bearbeitungen.
Word's Makrorekorder zeichnet keine Aktionen auf, die durch Klicken auf eine Schaltfläche im Register Entwicklertools des Menübands ausgelöst werden.
Word's Makrorekorder zeichnet keine Aktionen auf, die die Auswahl von Text durch Zeigen mit dem Mauszeiger umfassen.
Q16. Welche Anweisung sollte einem Fehlerbehandlungsblock einer Unterprozedur vorausgehen?
Ende
Rückkehr
Exit Sub
Stop
Q17. Wie viele Werte kann MyArray halten?
Option Base 0
Sub BuildArray()
Dim MyArray(5) As Integer
0
32.769
5
6
Q18. Welche Aussage ist wahr?
Set legt einen Wert in einer Klasse fest; Lassen Sie einen Wert aus einer Klasse zurück.
Lassen Sie einen Wert in einer Klasse festlegen; Setzen Sie einen Wert aus einer Klasse zurück.
Lassen Sie einen Wert in einer Klasse festlegen; Holen Sie sich einen Wert aus einer Klasse.
Holen Sie sich einen Wert in einer Klasse; Setzen Sie einen Wert aus einer Klasse zurück.
Q19. Eine Deklaration hat einen Gültigkeitsbereich, der drei Ebenen hat. Welche sind das?
Modul, Projekt und Automation
Prozedur, Privates Modul und Öffentliches Modul
Unterprozedur, Modul und Projekt
Prozedur, Projekt und Global
Q20. Es gibt zwei Referenzen, die im Visual Basic Editor ausgewählt sein müssen, damit Visual Basic-Code in Excel ausgeführt wird. Was sind diese beiden Referenzen?
MS Excel-Objektbibliothek und MS Office-Objektbibliothek
VBA und MS Office-Objektbibliothek
VBA und Excel-Objektbibliothek
MS Excel-Objektbibliothek und OLE-Automatisierung
Q21. Welche Aktion führt dazu, dass Ihr Projekt seine Variablen zurücksetzt?
Bearbeiten Sie die Liste der Argumente der aktuellen Routine im Debugmodus.
Klicken Sie auf Ende in einem Laufzeitfehlerdialogfeld.
Fügen Sie einem Arbeitsblatt eine ActiveX-Steuerelement hinzu.
all diese Antworten
Q22. Welche Tastenkombination bewirkt, dass VBE die Deklaration einer Prozedur lokalisiert?
Umschalt + F3
Alt + F (Windows) oder Option + F (Mac)
Umschalt + F2
Strg + F (Windows) oder Befehl + F (Mac)
Q23. Wenn Sie eine neue Objektklasse definieren, wo weisen Sie ihr einen Namen zu?
im Klassennamen des Klassenmoduls
im Code des Klassenmoduls
im Code eines Standardmoduls
in den Eigenschaften eines Standardmoduls
Q24. Wie zeigt ein Klassenmodul an, dass es eine bestimmte Schnittstelle verwendet?
Die Schnittstelle selbst ist Teil des Klassenmoduls.
mittels des Schlüsselworts Interface und dem Namen der Schnittstelle
mittels des Schlüsselworts Implementiert und dem Namen der Schnittstelle
Der Name der Schnittstelle wird als Parameter übergeben.
Q25. Was ist erforderlich, damit der Inhalt von Module1 anderen Modulen in einem VBA-Projekt zur Verfügung steht, aber nicht in einem anderen VBA-Projekt?
Setzen Sie Option Global oben in Module1.
Deklarieren Sie modulübergreifende Variablen als Privat.
Setzen Sie Module Level Scope oben in Module1.
Setzen Sie Option Private Module oben in Module1.
Q26. Wenn es mit einem Array namens MyArray verwendet wird, wie ist der bevorzugte Weg, um die Anfangs- und Endwerte einer Schleifensteuerungsvariable festzulegen?
Für i = 0 bis UBound(MyArray,1)
Für i = 1 bis UBound(MyArray,1)
Für i = LBound(MyArray,1) bis UBound(MyArray,1)
Es hängt davon ab, ob Option Base 0 oder Option Base 1 verwendet wird.
Q29. Um mit VBA-Code ein anderes VBA-Projekt zu pflegen, können Sie die Erweiterbarkeit von VBA nutzen. Was ist erforderlich, um die Erweiterbarkeit zu aktivieren?
Setzen Sie die Makrosicherheit auf Vertrauen für den Zugriff auf das VBA-Projektobjektmodell.
Die Arbeitsmappe des Projekts sollte im Register Überprüfen des Menübands geschützt sein.
Fügen Sie eine Referenz zu Microsoft VBA Extensibility 5.3 hinzu.
Fügen Sie eine Referenz zu Microsoft VBA Extensibility 5.3 hinzu und setzen Sie die Makrosicherheit auf Vertrauen für den Zugriff auf das VBA-Projektobjektmodell.
Q30. Wie fügen Sie einem VBA-Projekt ein Benutzerformular hinzu?
:
Wählen Sie das Projekt im Projektfenster des Visual Basic-Editors aus.
Klicken Sie auf die Schaltfläche Entwurfsmodus und wählen Sie den Einfügemodus aus.
:
Wählen Sie das Projekt im Projektfenster des Visual Basic-Editors aus.
Klicken Sie auf die Schaltfläche Toolbox und wählen Sie Benutzerformular aus.
:
Wählen Sie das Projekt im Projektfenster des Visual Basic-Editors aus.
Klicken Sie mit der rechten Maustaste auf das Menü Ausführen und wählen Sie Anpassen aus.
:
Wählen Sie das Projekt im Projektfenster des Visual Basic-Editors aus.
Klicken Sie auf Einfügen > Benutzerformular.
Q31. Die explizite Variablendeklaration ist erforderlich. MyVar ist sowohl auf Modul- als auch auf Verfahrensebene deklariert. Was ist der Wert von MyVar, nachdem zuerst AAA() und dann BBB() ausgeführt wurden?
Dim MyVar AsStringSub AAA()
Dim MyVar AsStringMyVar = "Bereich der Prozedur AAA"EndSubSub BBB()
MyVar = "Bereich der Prozedur BBB"EndSub
MyVar ist "Bereich der Prozedur AAA"
ISNULL(MyVar) ist TRUE
MyVar ist "Bereich der Prozedur BBB"
MyVar ist NULL
Q32. Welcher Codeblock aus Klassenmodulen führt zu einem Kompilierfehler?
Q33. Wenn VBA-Code FileCount als Konstante anstelle einer Variablen deklariert, läuft der Code tendenziell schneller. Warum?
Der Gültigkeitsbereich von Konstanten ist auf die Prozedur beschränkt, die sie deklariert.
Konstanten werden zur Kompilierzeit deklariert, Variablen jedoch zur Laufzeit.
Sobald sie in einem Projekt deklariert sind, kann der Wert einer Konstanten nicht geändert werden. Es ist daher nicht erforderlich, den aktuellen Wert von FileCount nachzuschlagen, wenn es sich um eine Konstante handelt.
Die Const-Deklaration gibt den effizientesten Typ für den Wert der Konstanten an.
Q34. Ein VBA-Projekt muss vier Klassen deklarieren. Wie viele Klassenmodule werden benötigt?
zwei (eine für die Eigenschaften und eine für die Methoden)
eins (jede Klasse wird im selben Modul deklariert)
vier (eine für jede Klasse)
so viele wie durch die Variablentypen benötigt werden, die die Objekte zurückgeben
Q35. Was zeigt dieser Code an?
Sub MakeErrors()
Dim Y As Variant, Z As Variant
OnErrorResumeNextY = 1 / 0MsgBox "Y = " & Y
OnErrorGoTo0Z - (0 - 3) ^ 0.5MsgBox "Z = " & Z
EndSub
eine Fehlermeldung
Y und Z
Z = in einem Meldungsfeld und dann eine anschließende Fehlermeldung
Y = in einem Meldungsfeld und dann eine anschließende Fehlermeldung
Q36. Der folgende VBA-Codeblock wird ausgeführt, wenn auf die Schaltfläche CommandButton1 von UserForm1 geklickt wird. Welcher Codeblock lässt UserForm1 jedoch geladen, aber nicht sichtbar, bis die FoundErrors-Funktion sie überprüft hat, und ermöglicht dann die weitere Verarbeitung, wenn keine Fehler gefunden werden?
:
PrivateSub CommandButton1_Click()
If FoundErrors(Me) Then _
Me.Show
EndSub
:
Private Sub CommandButton1_Click()IfNot FoundErrors(UserForm1) Then _
Unload UserForm1End Sub
Private Sub CommandButton1_Click()DoWhile FoundErrors(UserForm1)
UserForm1.show
Loop
End Sub
Die erste Anforderung besteht darin, dass UserForm1 geladen, aber nicht sichtbar ist, daher benötigen wir Me.Hide, wobei "Me" hier auf UserForm1 verweist.
Q37. Wie sollte ein With-Block korrekt strukturiert sein?
Q38. Warum erzeugt dieser Code einen Fehler "Index außerhalb des Bereichs"?
Sub Beispiel()
Dim MyArr() As Variant
ReDim MyArr(3, 4)
'Einige CodeReDimPreserve MyArr(4, 4)
EndSub
Arrays können nicht mehr als einmal geändert werden.
MyArr wurde ursprünglich mit drei "Zeilen" deklariert.
Sie können nur die letzte Dimension eines Arrays ändern, wenn Sie ReDim Preserve angeben.
Die richtige Syntax lautet ReDim Preserve MyArr(0 To 4, 0 To 4).
Q39. Welche Subroutinen-Deklaration verursacht keinen Kompilierungsfehler?
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. Wie kann ein Benutzer Daten auf einem Arbeitsblatt oder Dokument eingeben oder Fenster wechseln, während UserForm1 auf dem Bildschirm angezeigt wird?
Zeigen Sie das Formular mit dieser Anweisung an: UserForm1.Show vbModal
Fügen Sie diese Anweisung in den Code ein: UserForm1.Hwnd = False.
Setzen Sie die Eigenschaft SpecialEffect des Benutzerformulars auf frmShowModal.
Setzen Sie die Eigenschaft ShowModal des Benutzerformulars auf False.
Q41. SubA übergibt MyVar an SubB. Wie können Sie sicherstellen, dass MyVar seinen ursprünglichen Wert hat, wenn die Steuerung zu SubA zurückkehrt?
Deklarieren Sie SubB als Sub SubB(ByRef MyVar).
Deklarieren Sie SubB als Sub SubB(MyVar).
Deklarieren Sie SubB als Sub SubB(Static MyVar).
Deklarieren Sie SubB als Sub SubB(ByVal MyVar).
Q42. Welche Prozedurdeklaration ist syntaktisch korrekt?
:
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. Was sind die beiden Hauptarten von Prozeduren in VBA?
Funktion und Ereignis
Funktion und Gültigkeitsbereich
Unterprogramm und Ereignis
Unterprogramm und Funktion
Q44. Welcher Codeblock wird ohne Fehler kompiliert?
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. Was wird in der Sofortfenster verwendet, um den aktuellen Wert der Variablen CountValues anzuzeigen?
= CountValues= CountValues
| CountValues| CountValues
: CountValues: CountValues
? CountValues? CountValues
Q46. Auf welcher Ebene können Sie eine Variable auf diese Weise deklarieren: Private TopSecret As String?
Funktion
Modul
Unterprogramm
Prozedur
Q47. Wie kann ein Benutzer Daten auf einem Arbeitsblatt oder Dokument eingeben oder Fenster wechseln, während UserForm1 auf dem Bildschirm angezeigt wird?
Zeigen Sie das Formular mit dieser Anweisung an: UserForm1.Show vbModal.
Setzen Sie die Eigenschaft des Benutzerformulars SpecialEffect auf frmShowModal.
Fügen Sie diese Anweisung in den Code ein: UserForm1.Hwnd = False.
Setzen Sie die Eigenschaft des Benutzerformulars ShowModal auf False.
Q48. SubA übergibt MyVar an SubB. Wie können Sie sicherstellen, dass MyVar seinen ursprünglichen Wert hat, wenn die Steuerung zu SubA zurückkehrt?
Deklarieren Sie SubB als Sub SubB(Static MyVar).
Deklarieren Sie SubB als Sub SubB(ByVal MyVar).
Deklarieren Sie SubB als Sub SubB(MyVar).
Deklarieren Sie SubB als Sub SubB(ByRef MyVar).
Q49. Arrays können nicht mehr als einmal geändert werden.
Die richtige Syntax lautet ReDim Preserve MyArr(0 To 4, 0 To 4).
Sie können nur die letzte Dimension eines Arrays ändern, wenn Sie ReDim Preserve angeben.
MyArr wurde ursprünglich mit drei "Zeilen" deklariert.
Deklarieren Sie SubB als Sub SubB(ByRef MyVar).
Q50. Welcher Codeblock endet mit der Variablen i gleich 5 und der Variablen X gleich 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. Wie gibt eine Klassenmodul an, dass es eine bestimmte Schnittstelle verwendet?
mit dem Implements-Schlüsselwort und dem Namen der Schnittstelle.
mit dem Interface-Schlüsselwort und dem Namen der Schnittstelle.
Der Name der Schnittstelle wird als Parameter übergeben.
Die Schnittstelle selbst ist Teil des Klassenmoduls.
Q52. Welcher Teil der VBE kann Ihnen helfen, die VBA-Syntax zu erkunden?
Lokales Fenster
Objektkatalog
Projekt-Explorer
Optionaler Dialog
Q53. Bei diesem Code wird versucht, eine neue Sammlung von Mitarbeiternamen und -num
mern zu erstellen. Assoc ist eine Klasse. Welche Anweisung fehlt im 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. Was ist der Standardbegriff für eine Variable oder einen Wert, die bzw. der von einer Unterprozedur oder Funktion an eine andere übergeben wird?
Referenz
Element
Argument
Attribut
Q55. Was ist der Standardbegriff für eine Variable oder einen Wert, die bzw. der von einer Unterprozedur oder Funktion an eine andere übergeben wird?
Referenz
Element
Argument
Attribut
Q56. Wo befindet sich die Ereignisprozedur namens Worksheet_Change?
in einem Standardcode-Modul
im Objektmodul des Arbeitsblatts
im Klassenmodul Worksheet_Change
im Code-Modul der Arbeitsmappe
Q57. Sie erstellen eine Ereignisprozedur für ein Arbeitsblatt und bearbeiten die Argumentliste in der Sub-Anweisung der Ereignisprozedur. Was passiert, wenn die Ereignisprozedur ausgeführt wird?
Es gibt keinen Unterschied zu den Ergebnissen einer Standardprozedur.
Die Ergebnisse sind unvorhersehbar.
Die Prozedur wird nicht kompiliert.
Die Prozedur wirft einen Laufzeitfehler.
Q58. Basierend auf diesem Code, welche Prozedur ruft die Unterprozedur SumCosts korrekt auf?
Sub Sumosts(AcctName AsString, Amount AsLong)
Range("A1") = AcctName
EndSub
Q59. Sie möchten ein Objekt deklarieren, das Autos beschreibt, damit Ihr VBA-Code Tests wie den folgenden durchführen kann. Welches Schlüsselwort verwenden Sie, um Cars zu deklarieren?
If Cars(1).Make="Ford" And Cars (1).MPG > 20 Then Cars(1).Selected = True
Dataframe
Type
object
Variant
Q60. Was ist der Zweck des Teils .Range("A1:E5").Select dieser Anweisung?
ActiveCell.Offset(3,4).Range("A1:E5").Select
Wenn spezifiziert den Bereich, der nach dem Offset ausgewählt werden soll
Es gibt den Bereich von Zellen an, in dem die Inhalte des Offsets geschrieben werden sollen
Es bietet Größenänderungsinformationen - in diesem Fall gibt das Offset eine Referenz von fünf Zeilen und fünf Spalten zurück
Es gibt den Bereich von Zellen an, auf den das Offset angewendet werden soll
Q61. Was bewirken die beiden folgenden Anweisungen in Excel?