vba in autocad

Status
Niet open voor verdere reacties.

nootie

Gebruiker
Lid geworden
10 apr 2008
Berichten
104
Hoi,

Ik ben juist bezig met programmeren met vba in autocad. maar telken ik een code wil uitvoeren vraagt hij een zogenaamde declaratie (terwijl het in de options wel degelijk niet aangevinkt is).

Code:
Dim MyLine As AcadLine
Dim startPt(2) As Double
Dim endPt(2) As Double
startPt(0) = 0
startPt(1) = 5
endPt(0) = 0
endPt(1) = -5
Set MyLine = ThisDrawing.ModelSpace.AddLine(startPt, endPt)

Dit is dus een stukje code om een lijn te tekenen. U ziet dat de variabelen gedeclareerd zijn en alles werkt dan ook, maar wanneer ik bijvoorbeeld dit stukje code invoer:

Code:
Dim MyLine As AcadLine
startPt(0) = 0
startPt(1) = 5
endPt(0) = 0
endPt(1) = -5
Set MyLine = ThisDrawing.ModelSpace.AddLine(startPt, endPt)

Dan zegt hij compile error: sub or function not defined. Iemand hier een oplossing voor, want ik haat het om telkens variabelen te declareren.

Thx
 
Variabelen niet declareren is tegen het "goed programmeren" in VBA en in veel programmeertalen. Dat is toch maar een kleine moeite, niet?
 
U hebt wel gelijk dat het beter is voor de goede programmatie, maar eerlijk gezegd vind ik het toch wat tijdverspilling (in mijn mening toch). Maar hoe komt het dat je toch variabelen moet declareren, terwijl de optie niet aangevinkt staat?
 
Verwijder de tekst 'option explicit'
 
U hebt wel gelijk dat het beter is voor de goede programmatie, maar eerlijk gezegd vind ik het toch wat tijdverspilling (in mijn mening toch).

Ergens gelezen op een ander forum in de handtekening van iemand:

You name your kids--why not your variables? Use Option Explicit

Ieder zijn eigen stijl van programmeren uiteraard.

Wigi
 
Option explicit staat nergens op mijn module, wat ik er wel moet bijzeggen is dat als je Dim MyLine As AcadLine verwijdert dat hij geen foutmelding geeft. Terwijl als je Dim startPt(2) As Double verwijdert, geeft hij wel een foutmelding. Nu niks aan te doen, dan zal ik maar als een goede programmeur mijn variabelen declareren:)


Code:
Dim MyLine As AcadLine
Dim startPt(2) As Double
Dim endPt(2) As Double
startPt(0) = 0
startPt(1) = 5
endPt(0) = 0
endPt(1) = -5
Set MyLine = ThisDrawing.ModelSpace.AddLine(startPt, endPt)

Toch bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan