Wat is de CreateObject-methode in VBA en hoe de CreateObject-methode in Excel te gebruiken?

Inhoudsopgave:

Anonim

Zoals de naam al doet vermoeden, wordt de functie CreateObject gebruikt om objecten te maken.

Maar waarom gebruiken we de CreateObject-methode of -functie als we direct een object kunnen maken met het nieuwe trefwoord?

Nou, dat is een geldige vraag en we hebben een passend antwoord.

Het maken van een object met behulp van de CreateObject wordt genoemd Late binding. Bij late binding gebeurt het maken van objecten tijdens de runtime. Er hoeven geen verwijzingen te worden toegevoegd. Dit maakt de VBA-code draagbaar.

Als u bijvoorbeeld een toepassing maakt die zich bezighoudt met andere toepassingen en u gebruikt vroege binding door verwijzingen toe te voegen en de te gebruiken nieuwe trefwoord. Later zet je die code over naar een andere machine, dan zul je ook de referenties op die machine moeten toevoegen. Maar als u de CreateObject-methode had gebruikt voor het maken van andere toepassingsobjecten, hoeft u de verwijzingen niet op andere machines toe te voegen, voor het geval u de code overdraagt ​​of deelt.

In dit artikel zullen we leren over de CreateObject-methode aan de hand van enkele voorbeelden.

Syntaxis van CreateObject-functie:

Stel object_name= . in CreateObject (klassenaam als tekenreeks, [servernaam])

classname als string: Het is een vereiste variabele. Het is een string die verwijst naar de naam van de applicatie en het objecttype. De toepassingsnaam en klasse van het te maken object moeten worden gedeclareerd in AppName.ObjecType. Als ik bijvoorbeeld een object van Word Application wil, zou ik "Word.Application" schrijven. We zullen het later in de voorbeelden in detail zien.

[server naam]: Het is een optionele variabele. Het is een string van de naam van de netwerkserver waar het object zal worden gemaakt. Als servernaam een ​​lege tekenreeks ("") is, wordt de lokale machine gebruikt. Daar gaan we in dit hoofdstuk geen gebruik van maken.

Nu we de basis van de functie CreateObject kennen, gaan we ze in enkele voorbeelden gebruiken:

Voorbeeld 1: Open Microsoft Word-toepassing met Excel VBA

Dus als we vroege binding wilden gebruiken, zouden we verwijzingen naar woordtoepassingen toevoegen met behulp van het menu Extra-->Referenties.

En onze code zou er zo uitzien.

Sub OpenWordApp() Dim wordApp As New Word.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub 

Het voordeel van deze code is dat je de hulp krijgt van intelligentie van VBA en dat het je de beschikbare methode en eigenschappen toont van het object dat je hebt gemaakt. Het zal perfect werken op je systeem. Maar als je deze code met iemand anders deelt en ze hebben de verwijzing naar de Microsoft Word-bibliotheek niet vanuit tools toegevoegd, dan krijgen ze een foutmelding.

Gebruik de onderstaande code om deze fout te voorkomen.

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 

De bovenstaande code werkt prima op elke machine. Het is draagbaar omdat we late binding doen met behulp van de CreateObject-methode om het object te maken.

Laten we nog een voorbeeld bekijken:

Voorbeeld 2: Werkmapobject maken met de functie CreateObject

Als u enige tijd met VBA werkt, moet u werkmappen hebben gemaakt of toegevoegd met het trefwoord Nieuw. In dit voorbeeld doen we dat met CreateObject.

Sub addSheet() ' Declareer een objectvariabele om de object 'referentie vast te houden. Dim as Object veroorzaakt late binding. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ' Maak Excel zichtbaar door het Application object. ExcelSheet.Application.Visible = True ' Plaats wat tekst in de eerste cel van het werkblad. ExcelSheet.Application.Cells(1, 1).Value = "Dit is kolom A, rij 1" ' Sla het blad op in de map C:\test.xls. ExcelSheet.SaveAs "C:\TEST.XLS" ' Sluit Excel af met de Quit-methode op het Application-object. ExcelSheet.Application.Quit ' Laat de objectvariabele vrij. Stel ExcelSheet = Niets End Sub in 

Dus ja jongens, dit is hoe je de CreateObject-methode in VBA gebruikt. Laten we de voordelen en tekortkomingen ervan bespreken.

Voordelen van CreateObject om Object te maken

Het belangrijkste voordeel van CreateObject is dat het uw code draagbaar maakt (wanneer het maken van het object de zorg is). Je kunt de code met iedereen delen zonder je zorgen te maken of ze de verwijzing naar het objectprogramma hebben toegevoegd of niet.

Tekortkoming van CreateObject

De tekortkomingen van de CreateObject-methode zijn:

U moet de structuur kennen van de klasse die u gaat gebruiken voor het maken van objecten.

Nadat u het object hebt gemaakt, bent u volledig afhankelijk van uw geheugen voor de methoden en eigenschappen van objecten, omdat VBA geen intellisense biedt om u te helpen.

Bovenstaande tekortkomingen kunnen we verhelpen. Ik heb een truc.

Telkens wanneer ik code schrijf die met anderen wordt gedeeld, gebruik ik de eerste methode voor het maken van objecten (verwijzingen toevoegen vanuit tools). Dit helpt me de code sneller te schrijven. Zodra ik het VBA-programma heb voltooid en het heb getest, vervang ik de nieuwe methode door de CreateObject-methode. Dit maakt de code draagbaar. Je kunt deze truc gebruiken.

Dus ja jongens, dit is hoe je de CreateObject-functie kunt gebruiken om objecten in VBA te maken. Ik hoop dat ik alles heb kunnen uitleggen. Als je vragen hebt over dit artikel of andere VBA-gerelateerde vragen, stel ze dan in de comments hieronder.

Aan de slag met Excel VBA UserForms| Ik zal uitleggen hoe je een formulier in Excel maakt, hoe je de VBA-toolbox gebruikt, hoe je met gebruikersinvoer omgaat en tot slot hoe je de gebruikersinvoer opslaat. We zullen deze onderwerpen doornemen aan de hand van een voorbeeld en een stapsgewijze handleiding.

VBA-variabelen in Excel| VBA staat voor Visual Basic for Applications. Het is een programmeertaal van Microsoft. Het wordt gebruikt met Microsoft Office-toepassingen zoals MSExcel, MS-Word en MS-Access, terwijl VBA-variabelen specifieke trefwoorden zijn.

Excel VBA-variabel bereik| In alle programmeertalen hebben we variabele toegangsspecificaties die definiëren van waaruit toegang tot een gedefinieerde variabele kan worden verkregen. Excel VBA is geen uitzondering. VBA heeft ook scope-specificaties.

ByRef en ByVal-argumenten | Wanneer een argument als ByRef-argument wordt doorgegeven aan een andere sub of functie, wordt de referentie van de werkelijke variabele verzonden. Alle wijzigingen die in de kopie van de variabele zijn aangebracht, worden weerspiegeld in het oorspronkelijke argument.

Bladen verwijderen zonder bevestigingsvragen met VBA in Microsoft Excel | Aangezien u bladen verwijdert met VBA, weet u wat u doet. U wilt Excel vertellen deze waarschuwing niet te tonen en dat verdomde blad te verwijderen.

Nieuwe werkmap toevoegen en opslaan met VBA in Microsoft Excel 2016| In deze code hebben we eerst een verwijzing naar een werkmapobject gemaakt. En toen hebben we het geïnitialiseerd met een nieuw werkmapobject. Het voordeel van deze aanpak is dat u eenvoudig bewerkingen op deze nieuwe werkmap kunt uitvoeren. Zoals opslaan, sluiten, verwijderen, etc

Geef een bericht weer op de Excel VBA-statusbalk| De statusbalk in Excel kan worden gebruikt als codemonitor. Wanneer uw VBA-code lang is en u verschillende taken uitvoert met VBA, schakelt u vaak de schermupdate uit zodat u dat scherm niet ziet flikkeren.

Schakel waarschuwingsberichten uit met VBA in Microsoft Excel 2016| Deze code schakelt niet alleen VBA-waarschuwingen uit, maar verhoogt ook de tijdefficiëntie van de code. Laten we eens kijken hoe.

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.

De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.

AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om specifieke waarden te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.

Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.