Wie der Name schon sagt, wird die CreateObject-Funktion verwendet, um Objekte zu erstellen.
Aber warum verwenden wir die CreateObject-Methode oder -Funktion, wenn wir ein Objekt direkt mit dem new-Schlüsselwort erstellen können?
Nun, das ist eine berechtigte Frage und wir haben eine passende Antwort.
Die Erstellung eines Objekts mit dem CreateObject heißt Späte Bindung. Beim Late Binding erfolgt die Erstellung von Objekten zur Laufzeit. Es müssen keine Referenzen hinzugefügt werden. Dies macht den VBA-Code portabel.
Wenn Sie beispielsweise eine Anwendung erstellen, die sich mit anderen Anwendungen befasst, und Sie verwenden frühe Bindung indem Sie Referenzen hinzufügen und die Neu Stichwort. Später übertragen Sie diesen Code auf einen anderen Computer, dann müssen Sie auch die Referenzen auf diesem Computer hinzufügen. Wenn Sie jedoch die CreateObject-Methode zum Erstellen anderer Anwendungsobjekte verwendet haben, müssen Sie die Referenzen auf anderen Computern nicht hinzufügen, falls Sie den Code übertragen oder freigeben.
In diesem Artikel lernen wir die CreateObject-Methode anhand einiger Beispiele kennen.
Syntax der CreateObject-Funktion:
Objektname= . setzen CreateObject(Klassenname als String,[Servername]) |
Klassenname als String: Es ist eine erforderliche Variable. Es ist eine Zeichenfolge, die auf den Namen der Anwendung und des Objekttyps verweist. Der Anwendungsname und die Klasse des zu erstellenden Objekts sollten in AppName.ObjecType deklariert werden. Wenn ich zum Beispiel ein Objekt von Word Application möchte, würde ich "Word.Application" schreiben. Wir werden es später in Beispielen im Detail sehen.
[Servername]: Es ist eine optionale Variable. Es ist eine Zeichenfolge mit dem Namen des Netzwerkservers, auf dem das Objekt erstellt wird. Wenn servername eine leere Zeichenfolge ("") ist, wird der lokale Computer verwendet. Wir werden dies in diesem Kapitel nicht verwenden.
Nachdem wir nun die Grundlagen der CreateObject-Funktion kennen, verwenden wir sie in einigen Beispielen:
Beispiel 1: Öffnen Sie eine Microsoft Word-Anwendung mit Excel VBA
Wenn wir also die frühe Bindung verwenden wollten, würden wir über das Menü Extras -> Verweise Verweise auf Wortanwendungen hinzufügen.
Und unser Code würde so aussehen.
Sub OpenWordApp() Dim wordApp als neues Word.Application Dim wordDoc als Dokument wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Der Vorteil dieses Codes ist, dass Sie die Unterstützung der Intelligenz von VBA erhalten und Ihnen die verfügbaren Methoden und Eigenschaften des von Ihnen erstellten Objekts anzeigt. Es funktioniert perfekt auf Ihrem System. Wenn Sie diesen Code jedoch an eine andere Person weitergeben und diese den Verweis auf die Microsoft-Wortbibliothek von Tools nicht hinzugefügt hat, wird eine Fehlermeldung angezeigt.
Um diesen Fehler zu vermeiden, verwenden Sie den folgenden Code.
Sub OpenWordApp() Dim wordApp As Object Set wordApp = CreateObject("Word.Application") Dim wordDoc As Object wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub
Der obige Code funktioniert auf jedem Computer einwandfrei. Es ist portabel, da wir eine späte Bindung mit der CreateObject-Methode durchführen, um das Objekt zu erstellen.
Sehen wir uns ein anderes Beispiel an:
Beispiel 2: Erstellen Sie ein Arbeitsmappenobjekt mit der CreateObject-Funktion
Wenn Sie längere Zeit mit VBA arbeiten, müssen Sie Arbeitsmappen mit dem Schlüsselwort New erstellt oder hinzugefügt haben. In diesem Beispiel verwenden wir CreateObject.
Sub addSheet() ' Deklarieren Sie eine Objektvariable, um die Referenz des Objekts zu halten. Dim as Object verursacht eine späte Bindung. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ' Excel durch das Anwendungsobjekt sichtbar machen. ExcelSheet.Application.Visible = True ' Text in die erste Zelle des Blatts einfügen. ExcelSheet.Application.Cells(1, 1).Value = "Dies ist Spalte A, Zeile 1" ' Speichern Sie das Blatt im Verzeichnis C:\test.xls. ExcelSheet.SaveAs "C:\TEST.XLS" ' Excel mit der Quit-Methode für das Anwendungsobjekt schließen. ExcelSheet.Application.Quit ' Geben Sie die Objektvariable frei. Set ExcelSheet = Nichts End Sub
Also ja, Leute, so verwenden Sie die CreateObject-Methode in VBA. Lassen Sie uns die Vorteile und Nachteile davon besprechen.
Vorteile von CreateObject zum Erstellen von Objekten
Der Hauptvorteil von CreateObject besteht darin, dass es Ihren Code portabel macht (wenn es um die Objekterstellung geht). Sie können den Code an jeden weitergeben, ohne sich Gedanken darüber machen zu müssen, ob sie den Verweis auf das Objektprogramm hinzugefügt haben oder nicht.
Nachteil von CreateObject
Die Nachteile der CreateObject-Methode sind:
Sie müssen die Struktur der Klasse kennen, die Sie für die Objekterstellung verwenden werden.
Sobald Sie das Objekt erstellt haben, sind Sie für die Methoden und Eigenschaften von Objekten völlig auf Ihr Gedächtnis angewiesen, da VBA keine Intelligenz zur Verfügung stellt, die Ihnen hilft.
Wir können die oben genannten Mängel beseitigen. Ich habe einen Trick.
Immer wenn ich Code schreibe, der für andere freigegeben wird, verwende ich die erste Methode zum Erstellen von Objekten (Hinzufügen von Verweisen aus Tools). Dies hilft mir, den Code schneller zu schreiben. Sobald ich das VBA-Programm fertiggestellt und getestet habe, ersetze ich die New-Methode durch die CreateObject-Methode. Dadurch wird der Code portabel. Sie können diesen Trick anwenden.
Also ja, Leute, so können Sie die CreateObject-Funktion verwenden, um Objekte in VBA zu erstellen. Ich hoffe ich konnte alles erklären. Wenn Sie Fragen zu diesem Artikel oder zu anderen VBA-bezogenen Fragen haben, fragen Sie mich im Kommentarbereich unten.
Erste Schritte mit Excel VBA UserForms| Ich werde erklären, wie Sie ein Formular in Excel erstellen, wie Sie die VBA-Toolbox verwenden, wie Sie Benutzereingaben verarbeiten und schließlich die Benutzereingaben speichern. Wir werden diese Themen anhand eines Beispiels und einer Schritt-für-Schritt-Anleitung durchgehen.
VBA-Variablen in Excel| VBA steht für Visual Basic für Applikationen. Es ist eine Programmiersprache von Microsoft. Es wird mit Microsoft Office-Anwendungen wie MSExcel, MS-Word und MS-Access verwendet, während VBA-Variablen spezifische Schlüsselwörter sind.
Gültigkeitsbereich von Excel-VBA-Variablen| In allen Programmiersprachen haben wir Variablenzugriffsspezifizierer, die definieren, von wo aus auf eine definierte Variable zugegriffen werden kann. Excel VBA ist keine Ausnahme. Auch VBA hat Bereichsspezifizierer.
ByRef- und ByVal-Argumente | Wenn ein Argument als ByRef-Argument an eine andere Unterfunktion oder Funktion übergeben wird, wird die Referenz der tatsächlichen Variablen gesendet. Alle Änderungen, die an der Kopie der Variablen vorgenommen werden, spiegeln sich im ursprünglichen Argument wider.
Löschen Sie Blätter ohne Bestätigungsaufforderung mit VBA in Microsoft Excel | Da Sie Blätter mit VBA löschen, wissen Sie, was Sie tun. Sie möchten Excel anweisen, diese Warnung nicht anzuzeigen und das verdammte Blatt zu löschen.
Hinzufügen und Speichern einer neuen Arbeitsmappe mit VBA in Microsoft Excel 2016| In diesem Code haben wir zuerst einen Verweis auf ein Arbeitsmappenobjekt erstellt. Und dann haben wir es mit einem neuen Arbeitsmappenobjekt initialisiert. Der Vorteil dieses Ansatzes besteht darin, dass Sie Vorgänge in dieser neuen Arbeitsmappe problemlos ausführen können. Wie Speichern, Schließen, Löschen usw.
Anzeigen einer Nachricht in der Excel VBA-Statusleiste| Die Statusleiste in Excel kann als Codemonitor verwendet werden. Wenn Ihr VBA-Code lang ist und Sie mehrere Aufgaben mit VBA ausführen, deaktivieren Sie häufig die Bildschirmaktualisierung, damit dieser Bildschirm nicht flackert.
Deaktivieren Sie Warnmeldungen mit VBA in Microsoft Excel 2016| Dieser Code deaktiviert nicht nur VBA-Warnungen, sondern erhöht auch die Zeiteffizienz des Codes. Mal sehen wie.
Populäre Artikel:
50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität | Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Tastenkombinationen arbeiten Sie noch schneller mit Excel.
Die SVERWEIS-Funktion in Excel | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, die verwendet wird, um Werte aus verschiedenen Bereichen und Blättern zu suchen.
ZÄHLENWENN in Excel 2016 | Zählen Sie Werte mit Bedingungen mit dieser erstaunlichen Funktion. Sie müssen Ihre Daten nicht filtern, um bestimmte Werte zu zählen. Die Countif-Funktion ist unerlässlich, um Ihr Dashboard vorzubereiten.
So verwenden Sie die SUMIF-Funktion in Excel | Dies ist eine weitere wesentliche Funktion des Dashboards. Dies hilft Ihnen, Werte unter bestimmten Bedingungen zusammenzufassen.