Excel-gegevens integreren in een Word-document
Bijgewerkt door Brad Jones op 25 augustus 2017.
Tijdens je werkweek zijn er waarschijnlijk heel vaak dat je informatie uit Microsoft Excel in Word kopieert en plakt, of andersom.
Dit is hoe mensen vaak geschreven rapporten produceren op basis van gegevens die zijn verzameld en bijgewerkt in een spreadsheet. Excel is een geweldig programma voor alles, van het maken van professionele grafieken 6 Nieuwe Excel-grafieken en hoe ze te gebruiken 6 Nieuwe Excel-grafieken en hoe ze te gebruiken Wilt u meer uit uw Excel-diagrammen halen? Hier is een overzicht van enkele nieuwe grafieken die in de nieuwste versie van Excel zijn geïntroduceerd. Meer lezen, om een projectmanagementtracker in te stellen 10 Handige Excel-projectbeheersjablonen voor bijhouden 10 Handige Excel-projectbeheersjablonen voor het volgen van projectbeheersjablonen kunnen u helpen succesvolle projecten te repliceren. Hier zijn de essentiële Microsoft Excel-sjablonen voor u. Lees meer - maar als het gaat om het schrijven van een rapport, is Word een veel betere tool.
In dit artikel gaan we dieper in op VBA-scripting op de achtergrond waarmee u verbindingen kunt programmeren tussen gegevens die zijn opgeslagen in een Excel-bestand en Word-documenten waarin u rapporten produceert.
Het is verrassend eenvoudig om Microsoft Excel-gegevens te integreren in Microsoft Word zodra u weet hoe u de juiste referenties kunt toevoegen en hoe u de syntaxis van de VBA-code op de achtergrond kunt indelen.
Het werkblad instellen
In dit voorbeeld begin ik met een vrij eenvoudige Excel-spreadsheet. In de praktijk kan het Excel-bestand bestaan uit meerdere spreadsheets met veel gegevens - het maakt niet uit.
Zolang je weet waar je de gegevens in de spreadsheet kunt vinden, kun je deze bereiken en pakken met VBA. E-mails verzenden vanuit een Excel-spreadsheet VBA-scripts gebruiken E-mails verzenden vanuit een Excel-spreadsheet VBA-scripts gebruiken codesjabloon helpt u bij het instellen van geautomatiseerde e-mails vanuit Excel met behulp van Collaboration Data Objects (CDO) en VBA-scripts. Lees verder .
Dit is hoe mijn voorbeeld-spreadsheet eruit ziet. Het is een lijst met onkostennota's die het hele jaar door zijn berekend.
Het Word-document opstellen
Stel dat u een manager heeft die graag een mooi opgemaakt rapport ziet waarin de uitgaven worden beschreven, waarbij items als items worden gegroepeerd en de informatie wordt gepresenteerd in een lay-out die wat esthetischer is.
U kunt dit doen door objecten zoals tekstvakken en labels op te nemen in uw Word-document. Wanneer u in Word bent, klikt u gewoon op de Ontwikkelaar menutabblad en selecteer vervolgens “Ontwerpmodus” in de controls sectie. Gebruik de Legacy-tools vervolgkeuzepictogram om verschillende elementen in uw document in te voegen.
Gebruik dit menu om een Label.
Nadat u het label in het document hebt geplaatst waar u het wilt hebben (niet altijd een gemakkelijke taak), bent u klaar om de datafeed te programmeren. Maar eerst moet u het label een naam geven zodat de VBA het kan identificeren. Klik met de rechtermuisknop op het label en ga naar binnen eigenschappen. Vind de (Naam) veld en noem het iets dat je zult onthouden.
Voeg nu een toe Command knop van hetzelfde Legacy-tools vervolgkeuzelijst en dubbelklik erop om de VBA-editor te openen. Wanneer u uw code later laat werken, kunt u deze zo wijzigen dat de code op de computer wordt uitgevoerd Document Open () evenement. U ziet dat in de vervolgkeuzelijsten van het object in het editorvenster.
Werken met VBA
Om te beginnen met het verbinden van Word met Excel, moet je ervoor zorgen dat je naar de laatste kunt verwijzen in VBA. De Excel VBA-programmeerhandleiding voor beginners De Excel VBA-programmeerhandleiding voor beginners VBA is een Microsoft Office-gereedschap. U kunt het gebruiken om taken met macro's te automatiseren, triggers in te stellen en nog veel meer. We zullen u kennis laten maken met Excel visuele basisprogrammering met een eenvoudig project. Lees verder .
Bereid de Excel-gegevensinvoer voor
Klik op Hulpmiddelen, en dan Referenties. Blader door de lijst totdat u de ziet Microsoft Excel 16.0 Objectbibliotheek en selecteer het.
Als je dit eenmaal hebt gedaan, is de rest gewoon een kwestie van een belachelijk eenvoudig VBA-script schrijven om gegevens uit een Excel-spreadsheet op te halen en de labeltitel automatisch bijwerken met de gegevens.
Hier is de code:
Private Sub CommandButton1_Click () Dim objExcel als nieuw Excel.Application Dim exWb Als Excel.Workbook Set exWb = objExcel.Workbooks.Open ("C: \ Users \ Brad \ Desktop \ expenses.xlsx") ThisDocument.total_expenses.Caption = exWb. Spreadsheets ("Sheet1"). Cellen (12, 2) exWb.Sluiten Set exWb = Niets eindigt op Sub
Zie je hoe dat werkt? De “exWb” Excel-toepassingsobject opent het Microsoft Excel-bestand op het pad dat u opgeeft en komt rechtstreeks in het specifieke blad- en celnummer, extraheert de gegevens en plaatst deze in de eigenschap Bijschrift van het label dat ik heb genoemd totale uitgaven. Het enige dat u in uw script moet bewerken, is het bestandspad en de labelnaam.
Test uw macro
Om uw opdrachtknop uit te testen, slaat u uw document op en onthoudt dat u opgeeft dat u een document wilt Word Macro-Enabled Document zodat je code werkt.
Hier is de VBA-macro in actie.
Integreer Excel-labels
Het moeilijkste aan het omgaan met labels in Word is dat het soms moeilijk is om het aan het einde van een zin of naast een andere tekst uit te lijnen.
Een manier om dat te overwinnen, is dat een deel van de tekst naast de gegevens in de VBA-code zelf wordt opgenomen. Zoals je hier kunt zien, heb ik de statische tekst direct in het Bijschrift geplaatst toen ik het label zelf maakte.
Nu hoeft u alleen die tekst op te nemen wanneer u het label bijwerkt met uw VBA-script en de gegevens uit het Microsoft Excel-bestand toe te voegen aan het einde van die tekst.
Hier is hoe dat soort code eruit zou zien.
Dim objExcel als nieuw Excel.Application Dim exWb als Excel.Workbook Set exWb = objExcel.Workbooks.Open ("c: \ Users \ Brad \ Desktop \ expenses.xlsa") ThisDocument.total_expenses.Caption = exWb.Sheets ("Sheet1" ) .Cells (12, 2) ThisDocument.total_hotels.Caption = "Hotels:" & exWb.Sheets ("Sheet1"). Cells (5, 2) ThisDocument.total_dining.Caption = "Uit eten:" & exWb.Sheets ( "Blad1"). Cellen (2, 2) ThisDocument.total_tolls.Caption = "Tolls:" & exWb.Sheets ("Sheet1"). Cells (3, 2) ThisDocument.total_fuel.Caption = "Fuel:" & exWb. Spreadsheets ("Sheet1"). Cellen (10, 2) exWb.Sluiten Set exWb = Niets
U kunt de string-aaneenschakeling gebruiken “&” symbool om de statische tekst te verbinden met de gegevens uit het Excel-blad. Dit is hoe de eindresultaten eruitzien in het bijgewerkte Word-document:
Dingen verder brengen
Als u uw capaciteiten wilt testen, waarom uw rapport niet automatiseren 5 Bronnen voor Excel-macro's om uw spreadsheets te automatiseren 5 Bronnen voor Excel-macro's om uw spreadsheets te automatiseren Zoeken naar Excel-macro's? Hier zijn vijf sites die hebben wat je zoekt. Meer lezen nog verder? U kunt die lelijke grijze opdrachtknop uit uw Microsoft Word-document verwijderen door het script voor gegevensbijwerking gewoon door te laten lopen Document.Open () - het hele proces zal achter de schermen plaatsvinden.
Dit betekent dat u in veel gevallen het eerste document één keer kunt maken en daarna nooit opnieuw hoeft te maken. Het enige wat u hoeft te doen is het openen en alle labels worden automatisch bijgewerkt voor u met de gegevens uit het bijgewerkte Microsoft Excel-bestand. Gewoon klikken Afdrukken, en dien het rapport in bij uw manager. Een taak van 30 minuten is zojuist omgezet in een afdruk van één minuut!
Kun je nog andere coole toepassingen bedenken voor deze data-integratietechniek met VBA? Deel een aantal van uw eigen ideeën en gedachten in de opmerkingen hieronder.
Beeldcredits: Punyaphat Larpsomboon via Shutterstock.com
Ontdek meer over: Digitaal document, Microsoft Excel, Microsoft Word, Visual Basic-programmering.