1 Tekenen met data uit Excel - cadcollege.com · AutoCAD verwacht op de commando regel. De...
Transcript of 1 Tekenen met data uit Excel - cadcollege.com · AutoCAD verwacht op de commando regel. De...
2 leeD
1 Tekenen met data
uit Excel
1
Aanpassen
2
7.1
Inleiding DDEMet behulp van DDE, Dynamic Data Exchange, kunnen
commando’s tussen verschillende Windows applicaties
worden uitgewisseld. Een typische koppeling is die van
AutoCAD met een rekenblad of spreadsheet. In het
rekenblad worden bijvoorbeeld berekeningen gemaakt van
een ontwerp en met de resultaten wordt de tekening
aangepast zonder tussenkomst van de tekenaar.
Microsoft Office Alle programma’s van Microsoft Office kunnen AutoCAD
via DDE aansturen met de programmeertaal van Office
namelijk Visual Basic for Applications, VBA. Deze
programmeertaal zit ingebouwd in Excel, Access en Word.
cliënt-server DDE is een mechanisme waarbij de ene toepassing
communiceert met de andere. Een van de toepassingen
start de communicatie en de andere reageert hierop. De
toepassing die de communicatie start, heet de DDE cliënt.
De toepassing die reageert heet de DDE server. AutoCAD
LT kan niet een communicatie starten, maar wel hierop
reageren. AutoCAD LT kan dus alleen een server zijn.
Tijdens de communicatie voert de cliënt de volgende
activiteiten uit:
nVerbinding leggen
n Informatie overdragen
nVerbinding verbreken
Verbinding leggen Voordat er sprake is van communicatie, moet er een
verbinding tussen twee toepassingen gelegd worden. De
cliënt zorgt voor de aanmelding aan Windows. De cliënt
Aanpassen Deel II 7.1 Inleiding DDE 3
geeft met een commando aan wie de ontvanger (AutoCAD
LT) is en met welk onderdeel van de ontvanger gepraat
gaat worden. Dit onderdeel heet de topic. De topic is in het
geval van AutoCAD LT de dialoogregel en heet “System”.
Kanaalnummer Windows beperkt de communicatie niet tot slechts één
verbinding. Er kunnen meerdere verbindingen tegelijk
gemaakt worden. Bijvoorbeeld met meerdere rekenbladen
tegelijkertijd. Windows houdt de verbindingen uit elkaar
door deze een uniek kanaalnummer te geven.
De verbinding wordt gelegd met het commando:
KanaalNr=Application.DDEInitiate(“AutoCAD LT.DDE”,"System”)
U moet dit op één enkele regel schrijven. In plaats van
KanaalNummer kunt u natuurlijk iedere andere variabele
gebruiken. Het gaat er alleen maar om dat u onthoudt welk
kanaal gebruikt wordt voor de communicatie. Let erop dat
AutoCAD LT wordt geschreven met een spatie en niet met
een punt.
Overdragen
commando’s
Het uitvoeren van een AutoCAD commando gaat als
volgt:
Application.DDEExecute KanaalNummer,"[zzz]" met zzz is een AutoCAD commando bv “[line 0,0 100,100 ]”
Verbinding verbreken Wanneer alle commando’s zijn gegeven, kan de verbinding
worden verbroken, zodat geheugen vrijkomt. Het afsluiten
van het kanaal gebeurt met:
Application.DDETerminate KanaalNummerBv Application.DDETerminate 1
Als u weinig tijd heeft, dan kunt u ook het Excel bestand
downloaden om deze te bekijken. Activeer de macro´s op
Sheet1 om te zien hoe er getekend wordt met Excel.
4 Deel II Aanpassen 1 Tekenen met data uit Excel
Praktijk VBA met ExcelIn deze paragraaf wordt gebruik gemaakt van Excel (NL).
Start AutoCAD. Begin met een lege tekening op basis van
millimeters.
ExcelStart Excel. Zorg ervoor dat beide programma’s tegelijk
zichtbaar zijn: Met de volgende instructies maakt u
namelijk een programma, dat een lijn tekent in AutoCAD.
OpslaanActiveer het commando om het bestand op te slaan.
Tekenen met Excel Geef het bestand een naam.
Xlsm Kies voor een bestandstype Xlsm of xls. Dit zijn
bestandstypen die macro´s bevatten.
Opslaan Bevestig het opslaan.
Opdracht Activeer het applicatiemenu van Excel en klik op “Opties
voor Excel”. Controleer of op het tabblad Populair de
instelling “Tabblad Ontwikkelaars weergeven” aan staat.
Ontwikkelaars Activeer in Excel het tabblad voor de ontwikkelaars.
Visual Basic
Start de editor voor VBA. Het kan wel zijn, dat er
verschillende vensters aan staan, dat is afhankelijk van hoe u
de laatste keer geëindigd bent. Sluit dan deze vensters.
Beeld
Programma code
Activeer het venster van de programmacode. Vergroot het
venster van de programmacode.
U typt de volgende dik gedrukte tekst. In het vervolg ziet u
dik en dun gedrukte tekst. De tekst die dik is gedrukt, dient
u in te typen. De tekst die niet dik gedrukt is, staat er al zo
dat u weet op welke plaats u de nieuwe tekst moet typen.
Sub MijnEersteMacro()
KanaalNr = Application.DDEInitiate("AutoCAD LT.DDE", "System")
Call Application.DDEExecute(KanaalNr, "[Line 0,0 100,100 ]")
Call Application.DDETerminate(KanaalNr)
End Sub
Aanpassen Deel II 7.1 Inleiding DDE 5
2 spaties
Typ de regels zo nauwkeurig mogelijk over.
Tip: Ding en die vaak mis gaan zijn:
* Er staan geen spa ties tus sen line en de co ördinaten.
* In plaats van het enk ele “-te ken is twee maal het ‘-te ken ge -
bruikt.
* Het woord Ka naalNr is niet op alle re gels het zelf de.
* Het te ken [ is weg ge la ten. Deze is no dig voor het ver stu ren
van commando’s.
* Er is geen dub be le spa tie ge zet tus sen 100 en ]. Hierd oor
wordt het com man do wel over ge dra gen naar Au toCAD,
maar Au toCAD wacht nog tot een spa tie of een druk op de
Enter-toets wordt gegeven.
Tip: Als een re gel te lang is, mag u de re gel af bre ken door
eerst een spa tie en dan een Unders co re, een lig gend streepje,
te plaat sen.
u (F5) Zet de cursor binnen de macro, dus tussen Sub en End Sub
en klik op Sub uitvoeren.
U ziet hoe in AutoCAD een lijntje getekend wordt. Als er
een foutmelding volgt, probeer de tekst dan opnieuw in te
voeren, maar nu wel foutloos. Zie de aanwijzingen voor
veel voorkomende fouten.
Tip: Door her haal de lijk op de func tie toets F8 te druk ken
kunt u uw pro gram ma re gel voor re gel door lo pen en tes ten.
Maak de tekening schoon voor de volgende paragraaf en
zorg dat er geen commando actief is in AutoCAD.
Overzicht AutoCAD en DDE
DDEInitiate In Visual Basic wordt de communicatie gestart met:
I = Application.DDEInitiate( “AutoCAD LT.DDE”,
“System”)
DDEExecute Een opdracht wordt gegeven via
Application.DDEExecute I, “[Commando]”
waarbij I het kanaalnummer voorstelt. Commando is de
tekst die u zou intypen in AutoCAD tussen “[ en ]”
bijvoorbeeld “[line 0,0 100,100 ]” (Een spatie betekent in
AutoCAD hetzelfde als de Enter-toets)
DDETerminate De verbinding wordt verbroken met:
Application.DDETerminate I waarbij I het kanaalnummer
voorstelt.
6 Deel II Aanpassen 1 Tekenen met data uit Excel
7.2
CAD commando’sTheorie U kunt via DDE commando’s geven aan AutoCAD. De
invoer die u geeft, moet precies overeenkomen met dat wat
AutoCAD verwacht op de commando regel.
De commando’s aan AutoCAD worden meestal in kleine
overzichtelijke routines geplaatst, zodat u overzicht houdt
en u met een kleine wijziging het programma geschikt
maakt voor een ander CAD systeem of voor een andere
versie van AutoCAD. Hieronder ziet u kort aangegeven
wat nodig is voor de basis-tekenfuncties.
Lijn Voor een lijn dient u minimaal twee punten op te geven.
Cirkel Voor een cirkel is minimaal het middelpunt en de radius
nodig.
Boog Voor een boog zijn minimaal het middelpunt, de radius, de
starthoek en de eindhoek nodig. Meestal worden hoeken in
een programmeertaal in radialen weergegeven.
Tekst Voor tekst zijn minimaal de tekststring, het startpunt en de
teksthoogte nodig. Normaal gesproken wordt in AutoCAD
de spatie gebruikt als Enter. Als u tekst in moet voeren bij
de functies is dat niet het geval. U zult dan een Enter
moeten geven met Chr(13). Dit is het ASCII-equivalent
van het Enter-teken.
Dialoogboxen Er zijn ook een groot aantal functies die gebruik maken van
dialoogboxen. Omdat u met uw DDE koppeling alleen het
Aanpassen Deel II 7.2 CAD commando’s 7
commando venster kunt bereiken en niet de dialoogboxen
dient u voor de commando’s met de dialoogboxen
oplossingen te vinden. Er zijn drie categorieën van
oplossingen.
De file dialoogbox Commando’s die met bestandsbeheer te maken hebben
zoals New, OPen, SAve, SAVEAS, MENULOAD,
IMPORT, EXPORT, MSLIDE, SLIDE, RSCRIPT kunt u
veranderen van functies met een dialoogbox naar functies
op de commandoregel door de systeemvariabele FILEDIA
de waarde 0 te geven. Voor het commando Open kunt u
ook Fileopen gebruiken. Wanneer u bij Save, SaveAs of
Export over een bestand gaat schrijven tijdens een DDE
commando, wordt niet de gebruikelijke waarschuwing
gegeven, zodat u vooraf weet welke waarden u moet
invullen onafhankelijk van de situatie.
Plot en attribuut
dialoogbox
Als de systeemvariabele ATTDIA op nul staat ,dan worden
de dialoogbox voor DDINSERT en INSERT vervangen
door vragen op de dialoogregels.
Commando’s met en
zonder dialoogboxen
Commando’s met een dialoogbox hebben varianten waarbij
geen dialoogbox getoond wordt. De variant begint met een
- teken. Bijvoorbeeld Plot en -plot.
SysteemvariabelenAlle systeemvariabelen kunt u instellen door de naam van
deze variabele in te typen.
Enter toets Wanneer u een commando geeft in AutoCAD, dan sluit u
8 Deel II Aanpassen 1 Tekenen met data uit Excel
ARray -ARray Group -Group Pan -Pan XBind -XBind
ATTdef -ATTdef HatchEdit -HatchEdit PLOT -PLOT XRef -XRef
ATtEdit -ATtEdit HYPERLINK -HYPERLINK PLOTSTYLE -PLOTSTYLE TEXT -TEXT
ATTEXT -ATTEXT Insert -Insert PUrge -PUrge
BHatch -BHatch LAyer -LAyer REName -REName
Block -Block LineType -LineType STyle -STyle
BOundary -BOundary LWeight -LWeight View -View
COLor -COLor MText -MText VPORTS -VPORTS
CUSTOMIZE -TOolbar OSnap -OSnap Wblock -Wblock
deze af met de Enter-toets of de spatietoets. Als u tekst
invoert, kunt u alleen de Enter-toets gebruiken. Er zou
tenslotte een spatie in de tekst kunnen staan. In Visual
Basic gebruikt u dan Chr(13) of vbCr. Dit is de ASCII
weergave van de Enter-toets.
Afbreken van
commando’s
Wanneer u een commando wilt afbreken in AutoCAD, dan
drukt u eenmaal en bij sommige commando’s tweemaal op
de Esc-toets. Het is verstandig om uw programma hiermee
te laten beginnen, zodat u vooraf weet dat er geen
AutoCAD commando actief is. Het Escape-karakter wordt
in Visual Basic weergegeven als Chr(27).
Invoer via het
toetsenbord is altijd
een tekst
DDE draagt alleen teksten over en draagt geen getallen
over. Als u een getal wilt invoeren, dient u deze te
converteren naar een tekst. Er mag voor deze tekst dan
geen spatie komen, omdat AutoCAD de spatie
interpreteert als het indrukken van de Enter-toets. Bij de
conversiefunctie van Visual Basic worden alle positieve
getallen voorafgegaan door een spatie. U zult dus een eigen
stringconversie moeten maken.
Aanpassen Deel II 7.2 CAD commando’s 9
Praktijk KoppelenU werkt verder met het VBA programma van de vorige
paragraaf.
Invoegen
Module
Activeer in de VBA editor het pulldownmenu Invoegen en
kies voor een nieuwe module.
LT Verander de naam van de module naar LT.
Globale variabele: Het kanaalnummer komt in meerdere
procedures voor. Om ervoor te zorgen dat deze overal
bekend is; wordt deze globaal gedefinieerd.
Opdracht Type op de eerste regel van Module LT:
De volgende teksten kunt u kopiëren uit [www.cadcollege.com >
Instructiefilmpjes > AutoCAD LT > Aanpassen > 1.0]
Global KanaalNr As Long
Koppelen: Ieder programma begint met het koppelen aan
AutoCAD LT.
Opdracht Type de volgende drie regels in Algemeen om deze
koppeling te maken. In het vervolg hoeft u dus slechts het
commando Koppelen te geven.
Sub Koppelen()KanaalNr=Application.DDEInitiate("AutoCAD LT.DDE","System")End Sub
Ontkoppelen: Ieder programma wordt beëindigd met het
ontkoppelen van AutoCAD LT.
Opdracht Type de volgende drie regels in Algemeen om deze
ontkoppeling te maken. In het vervolg hoeft u dus slechts
het commando Ontkoppelen te geven in plaats van die
10 Deel II Aanpassen 1 Tekenen met data uit Excel
lange regel in te typen.
Sub Ontkoppelen() Call Application.DDETerminate(KanaalNr)End Sub
Er bestaan vier verschillende soorten van invoer voor
AutoCAD: functieactivering, getalinvoer, waarde-invoer
en tekstinvoer. Door voor ieder van deze functies routines
te maken, kunnen we eenvoudig andere functies van hogere
orde programmeren. Omdat in deze basisfuncties de
conversie van getal naar tekst voorkomt, wordt eerst de
nieuwe conversiefunctie gemaakt.
Tekst conversie: VBA kan een getal vertalen naar een tekst,
maar voegt daar een ongewenste spatie toe.
Opdracht Voeg de volgende regels toe in de module LT. Deze
vormen de nieuwe tekst conversiefunctie. De functie
converteert een getal naar een tekst met de VBA functie Str
en verwijdert daarna de spatie met het commando Trim.
Function AcadStr(x) Tdl = Str(x) AcadStr = Trim(Tdl)End Function
Naar AutoCAD Doorsturen: Omdat alle invoerfuncties een
tekstregel naar AutoCAD sturen, wordt deze in een
procedure gestopt, zodat deze makkelijk is te onderhouden.
De tekstregel wordt altijd afgesloten met een spatie of
Enter. Omdat de Enter meer algemeen is, wordt deze ook
opgenomen in deze procedure.
Een Enter-toets is in Visual Basic Chr(13) of vbCr.
Rondom de tekstregel zitten de DDE haakjes “[” en “]”. In
VBA wordt het teken & gebruikt, om twee teksten aan
elkaar te plakken. Er staan altijd spaties rondom &.
Opdracht Voeg nu de volgende regels toe aan de module LT.
Sub Invoeren(Commando) Tdl = "[" & Commando & Chr(13) & "]" Call Application.DDEExecute (KanaalNr, Tdl)End Sub
Com man do in voer: De vol gen de pro ce du re ac ti veert een
com man do. De te kens die over ge dra gen wor den be gin nen
met twee keer het Esc-te ken, chr(27) of chr( vbKeyEsca -
Aanpassen Deel II 7.2 CAD commando’s 11
pe), om een even tu eel ac tief com man do af te breken.
Opdracht Type de volgende regels in.
Sub Commando(functie) Call Invoeren (Chr(27) & Chr(27) & functie )End Sub
GetalInvoer: De volgende procedure voert een getal in.
Opdracht Type de volgende regels in.
Sub Waarde(x) Call Invoeren (AcadStr(x))End Sub
Puntinvoer: De volgende procedure voert een punt in. Een
punt bestaat uit twee getallen gescheiden door een komma.
De dynamische invoer wordt op de eerste regel uit gezet.
Opdracht Type de volgende regels in.
Sub Punt(x, y)Call Invoeren ("´DYNMODE -3")
Call Invoeren (AcadStr(x) & "," & AcadStr(y))End Sub
Als u al de bovenstaande regels heeft ingetypt dan ziet uw
programma er als volgt uit. Controleer dit met uw scherm.
Let op: Controleer de code goed. Let op de spelling van
alle procedures. Een letter of spatie anders is fataal.
12 Deel II Aanpassen 1 Tekenen met data uit Excel
Praktijk Lijn met VBAVoeg de volgende regels toe aan de module LT. Deze
vormen een procedure om een lijn te tekenen.
Sub lijn(x1, y1, x2, y2)
Call Commando("Line")
Call Punt (x1, y1)
Call Punt (x2, y2)
Call Invoeren ( "" )
End Sub
Ga naar de oorspronkelijke module “Blad1”. Verwijder alle
code en type de volgende regels:
Sub Cursus
Call LT.Koppelen
Call LT.Lijn(10, 20, 50, 20)
Call LT.Lijn(50, 20, 30, 40)
Call LT.Lijn(30, 40, 10, 20)
Call LT.Ontkoppelen
End Sub
Zet de cursor in de subroutine van Cursus, zodat VB weet
welke macro u wilt uitvoeren.
� Klik op uitvoeren macro. U gebruikt de functietoets F5 of
de button met het pijltje. Als alles goed is gegaan, wordt
opnieuw de lijn getekend.
Tip: Als u een fout heeft ge maakt in uw pro gram ma dan
wordt er geen lijn ge te kend, maar ver schijnt een fout mel -
ding. U heeft dan een ty pe fout ge maakt. Con tro leer dan de
code van deze en van de vo ri ge pagina’s.
Aanpassen Deel II 7.2 CAD commando’s 13
x1 x2
y1
y2
1
2
*
Praktijk Cirkel met VBAVoeg de volgende regels toe aan de module LT voor de
subroutine om een cirkel te tekenen. U begint onder de
laatste regel van de macro lijn.
Sub cirkel (x, y, r )
Call Commando("Dragmode off")
Call Commando ("Circle")
Call Punt (x, y)
Call Waarde (r)
Call Commando ("Dragmode auto")
End Sub
De dragline is in de code hierboven uitgezet, omdat deze
alleen werkt met directe invoer op het scherm
Voeg de volgende dik gedrukte tekst toe aan de macro
Cursus in de module Blad1.
Sub CursusCall LT.KoppelenCall LT.Lijn(10, 20, 50, 20)Call LT.Lijn(50, 20, 30, 40)Call LT.Lijn(30, 40, 10, 20)
Call LT.Cirkel(30, 30, 50)
Call LT.Cirkel(55, 45, 5)
Call LT.Cirkel(5, 45, 5) Call LT.Ontkoppelen
End Sub
Zet de cursor in de tekst van Macro Cursus, zodat VB weet
welke macro u wilt uitvoeren.
� Klik op uitvoeren macro. De volgende tekening ontstaat.
14 Deel II Aanpassen 1 Tekenen met data uit Excel
x
y
R
*
Praktijk Boog met VBAVoeg de volgende tekst toe aan de module LT voor een
subroutine om een boog te tekenen. U begint onder de
laatste regel van de macro cirkel.
Sub boog(x, y, x1, y1, hoek)
Call Invoeren ("Dragmode off")
Call Commando( "Arc")
Call Invoeren( "C")
Call Punt (x, y)
Call Punt (x1, y1)
Call Invoeren ("A")
Call Waarde (hoek)
Call Invoeren ("Dragmode auto")
End Sub
Voeg de volgende tekst toe aan de tekst van de macro
Cursus in de module Blad1.
Sub CursusCall LT.KoppelenCall LT.Lijn(10, 20, 50, 20)Call LT.Lijn(50, 20, 30, 40)Call LT.Lijn(30, 40, 10, 20)Call LT.Cirkel(30, 30, 50)Call LT.Cirkel(55, 45, 5)Call LT.Cirkel(5, 45, 5)
Call LT.Boog(30, 40, 2, 11, 90) Call LT.Ontkoppelen
End Sub
Zet de cursor in de tekst van Cursus, zodat VB weet welke
macro u wilt uitvoeren.
� Klik op uitvoeren macro. De volgende tekening ontstaat.
Aanpassen Deel II 7.2 CAD commando’s 15
Hoek
1
X
Y
X1
Praktijk Tekst met VBAVoeg de volgende tekst toe aan de module LT voor een
subroutine om tekst te tekenen. U begint onder de laatste
regel van de macro boog.
Sub tekst(x, y, h, Regel)
Call Commando ("-TEXT")
Call Punt (x, y)
Call Waarde (h)
Call Waarde (0)
Call Invoeren (Regel )
End Sub ‘Einde tekst
Voeg de volgende tekst toe aan de tekst van de macro
Cursus in de module Blad1.
Sub CursusCall LT.KoppelenCall LT.Lijn(10, 20, 50, 20)Call LT.Lijn(50, 20, 30, 40)Call LT.Lijn(30, 40, 10, 20)Call LT.Cirkel(30, 30, 50)Call LT.Cirkel(55, 45, 5)Call LT.Cirkel(5, 45, 5) Call LT.Boog(30, 40, 2, 11, 90)Call LT.Tekst(90, 40, 20,"Hallo wereld")Call LT.Ontkoppelen
End Sub
Zet de cursor in de tekst van Cursus, zodat VB weet welke
macro u wilt uitvoeren.
� Klik op uitvoeren macro. De volgende tekening ontstaat
.
16 Deel II Aanpassen 1 Tekenen met data uit Excel
x
y
*
Hoogte
0ABC Hoek
7.3
SysteemvariabelenTheorie De systeemvariabelen zijn variabelen waarin AutoCAD
zijn instellingen bewaard. Er worden onder andere
systeemvariabelen gebruikt die aangeven wat de huidige
kleur is waarin u tekent, wat de huidige lijnsoort is of wat
de huidige laag is.
Instellen via de
dialoogregel
De meeste systeemvariabelen zijn direct te wijzigen op de
dialoogregel. De werking is eenvoudig. U typt de naam van
een systeemvariabele in en vervolgens typt u de nieuwe
waarde van de systeemvariabele in.
Sommige systeemvariabelen kunnen direct een waarde
krijgen. Hiertoe behoort onder andere de systeemvariabele
CECOLOR. Deze kunt u ieder moment een waarde geven
tussen 0 en 255.
Instellen met
commando’s
Sommige systeemvariabele zoals CELTYPE voor de
huidige lijnsoort en CELAYER voor de huidige laag,
kunnen alleen een waarde krijgen van een van de
lijnsoorten of een van de lagen die in de tekening zijn
gedefinieerd. U kunt bijvoorbeeld de lijnsoort HIDDEN
niet actief maken als deze niet is gedefinieerd.
Het is in dat geval handiger om de commando’s
-LINETYPE SET respectievelijk -LAYER SET te
gebruiken. Deze commando’s stellen niet alleen de
systeemvariabele in, maar laden ook de betreffende lijnsoort
of maken de betreffende laag aan.
Aanpassen Deel II 7.3 Systeemvariabelen 17
Praktijk Kleur en lijnsoorten met VBAVoeg de volgende regels toe aan de module LT voor de
subroutine om een kleur te kiezen en om de lijnsoort te
kiezen. U begint onder de laatste regel van de macro tekst.
Sub Kleur(waarde)
Call Commando ("CECOLOR")
Call Invoeren (waarde)
End Sub
Sub LijnSoort(waarde)
Call Commando ("-LINETYPE")
Call Invoeren ("S")
Call Invoeren (waarde)
Call Invoeren ("")
End sub
Voeg de volgende tekst toe de macro Cursus in de module
Blad1.
Sub CursusCall LT.KoppelenCall LT.Lijn(10, 20, 50, 20)Call LT.Lijn(50, 20, 30, 40)Call LT.Lijn(30, 40, 10, 20)Call LT.Cirkel(30, 30, 50)Call LT.Cirkel(55, 45, 5)Call LT.Cirkel(5, 45, 5)
Call LT.LijnSoort ("HIDDEN"Call LT.Boog(30, 40, 2, 11, 90)
Call LT.Kleur (1) Call LT.Tekst(90, 40, 20,"Hallo wereld")Call LT.Ontkoppelen
End Sub
Wis eerst de tekening. Zet de cursor in de tekst van Cursus,
zodat VB weet welke macro u wilt uitvoeren.
� Klik op uitvoeren macro. De volgende tekening ontstaat.
Opdracht Sla het Excel bestand op. Deze subroutines vormen de basis
voor verdere ontwikkelingen. Verwijder de tekening in
AutoCAD.
18 Deel II Aanpassen 1 Tekenen met data uit Excel
7.4
RekenbladTheorie Tot nu toe is er vanuit gegaan dat er gebruik wordt
gemaakt van Visual Basic for Applications. In dit geval is
VBA gekoppeld aan Excel. Uit het rekenblad kunnen
gegevens gehaald worden, om die voor de tekening te
gebruiken.
Aanpassen Deel II 7.4 Rekenblad 19
DisplayAlerts
Screenupdating
Visible
Excel.application
ActiveWorkbook
ActiveWorksheet
Cells( 1, 1 )
Value
Value
Cells( 1, 2 )
Cells( ., . )
Value
Cells( 2, 1 )
Value
Praktijk Waarden uit Excel met VBAU werkt verder met de bestanden van de vorige paragraaf.
Opdracht Voeg de volgende regels toe aan de module LT. De tekst is
een functie om een waarde uit een veld van Excel te lezen.
U begint onder de laatste regel van de macro LijnSoort.
Function Veld(i,j)
Veld = Application.Worksheets("Blad1").Cells(i,j).Value
End Function
Bij de Engelse versie van Excel gebruikt u “Sheet” in plaats
van “Blad”. Voeg de volgende subroutine toe aan de
module Blad1
Sub Cursus2()
Call LT.Koppelen
i = 1
Do
Call LT.Lijn (Veld(i,1),Veld(i,2),Veld(i,3),Veld(i,4))
i = i + 1
Loop Until Veld(i, 1) = ""
Call LT.Ontkoppelen
End Sub
Vul het rekenblad “Blad1” in met de waarden uit de
volgende afbeelding. Zet de cursor in de procedure
Cursus2, zodat VB weet welke macro u wilt uitvoeren.
� Klik op uitvoeren macro. De volgende tekening verschijnt:
20 Deel II Aanpassen 1 Tekenen met data uit Excel