image

Wie der Name schon sagt, wird die Funktion CreateObject zum Erstellen von Objekten verwendet. Aber warum verwenden wir die CreateObject-Methode oder -Funktion, wenn wir mit dem neuen Schlüsselwort direkt ein Objekt erstellen können? Nun, das ist eine gültige Frage und wir haben eine passende Antwort. Die Erstellung eines Objekts mit dem CreateObject wird als Late Binding * bezeichnet. Beim späten Binden 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 die frühzeitige Bindung verwenden, indem Sie Verweise hinzufügen und das neue Schlüsselwort * verwenden. 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 nicht auf anderen Computern hinzufügen, falls Sie den Code übertragen oder freigeben.

In diesem Artikel lernen wir anhand einiger Beispiele die CreateObject-Methode kennen.

Syntax der CreateObject-Funktion:

Set object_name= CreateObject(classname as string,[servername])

Klassenname als Zeichenfolge: Dies ist eine erforderliche Variable. Es ist eine Zeichenfolge, die sich auf den Namen der Anwendung und den Objekttyp bezieht. 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]: Dies ist eine optionale Variable. Dies ist eine Zeichenfolge des Namens des Netzwerkservers, auf dem das Objekt erstellt wird. Wenn der Servername eine leere Zeichenfolge („“) ist, wird der lokale Computer verwendet. Wir werden dies in diesem Kapitel nicht verwenden.

Nachdem wir die Grundlagen der CreateObject-Funktion kennen, verwenden wir sie in einigen Beispielen:

Beispiel 1: Öffnen einer Microsoft Word-Anwendung mit Excel VBA Wenn wir also eine frühzeitige Bindung verwenden möchten, fügen wir über das Menü Extras → Verweise Verweise auf Word-Anwendungen hinzu.

image

Und unser Code würde so aussehen.

Sub OpenWordApp()

Dim wordApp As New Word.Application

Dim wordDoc As Document

wordApp.Visible = True

wordDoc = wordApp.Documents.Add

End Sub

Der Vorteil dieses Codes besteht darin, dass Sie die Unterstützung der Intelligenz von VBA erhalten und die verfügbaren Methoden und Eigenschaften des von Ihnen erstellten Objekts anzeigen. Es funktioniert einwandfrei auf Ihrem System. Wenn Sie diesen Code jedoch an andere Personen weitergeben und diese den Verweis auf die Microsoft Word-Bibliothek von Tools nicht hinzugefügt haben, wird eine Fehlermeldung angezeigt.

image

Verwenden Sie den folgenden Code, um diesen Fehler zu vermeiden.

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 eines Arbeitsmappenobjekts mit der Funktion „CreateObject“ Wenn Sie längere Zeit mit VBA arbeiten, müssen Sie Arbeitsmappen mit dem Schlüsselwort „Neu“ erstellt oder hinzugefügt haben. In diesem Beispiel verwenden wir CreateObject.

Sub addSheet()



' Declare an object variable to hold the object

' reference. Dim as Object causes late binding.

Dim ExcelSheet As Object

Set ExcelSheet = CreateObject("Excel.Sheet")

' Make Excel visible through the Application object.

ExcelSheet.Application.Visible = True

' Place some text in the first cell of the sheet.

ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"

' Save the sheet to C:\test.xls directory.

ExcelSheet.SaveAs "C:\TEST.XLS"

' Close Excel with the Quit method on the Application object.

ExcelSheet.Application.Quit

' Release the object variable.

Set ExcelSheet = Nothing

End Sub

Also ja Leute, so benutzt ihr die CreateObject-Methode in VBA. Lassen Sie uns die Vor- und Nachteile diskutieren.

Vorteile von CreateObject zum Erstellen von Objekten Der Hauptvorteil von CreateObject besteht darin, dass Ihr Code portabel wird (wenn es um die Objekterstellung geht). Sie können den Code für jeden freigeben, ohne sich Gedanken darüber machen zu müssen, ob er den Verweis auf das Objektprogramm mit hinzugefügt hat oder nicht.

Mangel an CreateObject

Die Mängel der CreateObject-Methode sind:

Sie müssen die Struktur der Klasse kennen, die Sie für die Objekterstellung verwenden möchten.

Sobald Sie das Objekt erstellt haben, sind Sie hinsichtlich der Methoden und Eigenschaften von Objekten vollständig von Ihrem Speicher abhängig, da VBA keine Intelligenz bereitstellt, die Ihnen hilft.

Wir können die oben genannten Mängel überwinden. 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 Referenzen 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. Dies macht den Code portabel. Sie können diesen Trick verwenden.

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-Fragen haben, wenden Sie sich an mich im Kommentarbereich unten.

Verwandte Artikel:

link: / Applications-Word-Outlook-in-VBA-Erste Schritte mit Excel-VBA-Benutzerformularen [Erste Schritte mit Excel VBA UserForms] | * Ich werde erklären, wie man ein Formular in Excel erstellt und wie man es verwendet VBA-Toolbox, wie man Benutzereingaben behandelt und schließlich die Benutzereingaben speichert. Wir werden diese Themen anhand eines Beispiels und einer Schritt-für-Schritt-Anleitung durchgehen.

link: / allgemeine-themen-in-vba-vba-variablen-in-excel [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 bestimmte Schlüsselwörter sind.

link: / allgemeine-themen-in-vba-excel-vba-variablenbereich [Excel VBA-Variablenbereich] | * 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 verfügt über Bereichsspezifizierer.

link: / Zellenbereiche-Zeilen-und-Spalten-in-vba-was-ist-der-Unterschied-zwischen-byref-und-byval-Argumenten-vba-Interview-Frage [ByRef- und ByVal-Argumente] | Wenn ein Argument als ByRef-Argument an ein anderes Sub oder eine andere Funktion übergeben wird, wird die Referenz der tatsächlichen Variablen gesendet. Alle Änderungen, die an der Kopie der Variablen vorgenommen werden, werden im ursprünglichen Argument wiedergegeben.

link: / files-arbeitsmappe-und-arbeitsblätter-in-vba-lösche-blätter-ohne-bestätigungs-aufforderungen-mit-vba-in-microsoft-excel [lösche blätter ohne bestätigungs-aufforderungen 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.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Neue Arbeitsmappe mit VBA in Microsoft Excel 2016 hinzufügen und speichern] | 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 Operationen an dieser neuen Arbeitsmappe problemlos ausführen können. Wie Speichern, Schließen, Löschen usw. `link: / menüs-Symbolleisten-Statusleiste-in-vba-Anzeige-einer-Nachricht-in-der-Statusleiste-mit-vba-in-Microsoft-Excel [Anzeige einer Nachricht ein Die 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.

link: / allgemeine-themen-in-vba-ausschalten-warnwarnmeldungen-mit-vba-in-microsoft-excel [Warnmeldungen mit VBA in Microsoft Excel 2016 ausschalten] | * Dieser Code deaktiviert nicht nur VBA Warnungen, erhöht aber auch die Zeiteffizienz des Codes. Mal sehen, wie.

Beliebte Artikel:

link: / Tastatur-Formel-Verknüpfungen-50-Excel-Verknüpfungen-zur-Steigerung-Ihrer-Produktivität [50 Excel-Verknüpfungen zur Steigerung Ihrer Produktivität] | Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Verknüpfungen können Sie noch schneller in Excel arbeiten.

link: / formeln-und-funktionen-einführung-der-vlookup-funktion [Die VLOOKUP-Funktion in Excel] | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, mit der Werte aus verschiedenen Bereichen und Tabellen gesucht werden. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Zählen Sie Werte mit Bedingungen, die diese erstaunliche Funktion verwenden. Sie müssen Ihre Daten nicht filtern, um bestimmte Werte zu zählen.

Die Countif-Funktion ist wichtig, um Ihr Dashboard vorzubereiten.

link: / excel-formel-und-funktion-excel-sumif-funktion [Verwendung der SUMIF-Funktion in Excel] | Dies ist eine weitere wichtige Funktion des Dashboards. Auf diese Weise können Sie Werte unter bestimmten Bedingungen zusammenfassen.