anbe4 Skrevet 30. januar 2006 Skrevet 30. januar 2006 Jeg skal lege ett program som man ved å trykke på forskjellige knapper skal man kunne tegne forskjellige linjer i et nytt word dokument. Fant utgangspunktet til denne koden på msdn.microsoft.com og har redigert den litt selv for å få den til å tegne i et nytt dokument: Dim shpCanvas As CanvasShapes Dim doc As Document Dim shpLine As shape Set doc = Documents.Add 'Add new drawing canvas to the active document Set shpCanvas = doc.Shapes _ .AddCanvas(Left:=100, Top:=75, _ Width:=150, Height:=200) 'Add a line to the drawing canvas Set shpLine = shpCanvas.CanvasItems.AddLine( _ BeginX:=25, BeginY:=25, EndX:=150, EndY:=150) 'Add an arrow to the line and sets the color to purple With shpLine.Line .BeginArrowheadStyle = msoArrowheadDiamond .BeginArrowheadWidth = msoArrowheadWide .ForeColor.RGB = RGB(Red:=150, Green:=0, Blue:=255) End With Bruker jeg den innebygde visual basic editoren som man kan lage makroer med, så fungerer dette fint. Det jeg ønsker er å få til det samme i vb 6.0. Når jeg prøver med den samme koden i vb 6 stopper det hele når det kommer til .CanvasItems. da får jeg feilmeldingen "method or datamember not found" En gang til hva jeg ønsker skal skje for å gjøre det klart: 1. Åpne et nytt worddocument. 2. Legge inn et lerret / canvas i dette dokumentet. 3. Tegne forskjellige linjer på dette lerretet.
aadnk Skrevet 2. februar 2006 Skrevet 2. februar 2006 Det skulle ikke være verre enn å tilpasse koden en smule: ' Constants used belowConst msoArrowheadDiamond = 5 Const msoArrowheadWide = 3 Dim doc As Object Dim shpLine As Object Dim oWord As Object ' Firstly, create a reference to the word application Set oWord = CreateObject("Word.Application") ' Then, create a new document Set doc = oWord.Documents.Add 'Add a line to the current document Set shpLine = doc.Shapes.AddLine(125, 100, 300, 450) 'Add an arrow to the line and sets the color to purple With shpLine.Line .BeginArrowheadStyle = msoArrowheadDiamond .BeginArrowheadWidth = msoArrowheadWide .ForeColor.RGB = RGB(150, 0, 255) End With ' Show the current winow oWord.Visible = True ' Clear up Set oWord = Nothing
anbe4 Skrevet 3. februar 2006 Forfatter Skrevet 3. februar 2006 (endret) takker for hjelpa, jeg kan bruke dette også, men det aller greieste hadde vært om det gikk ann å samle linjene på en lerret (canvas). Dette fordi programmet jeg lager skal tegne mange objekter og så skal det være mulig å kopiere den ferdige tegningen inn i andre dokumenter. Det er derfor mye lettere å tegne alt på et lerret, så trenger man bare kopiere inn lerretet, så følger alt det andre med, i stede for å måtte merke alle objektene som er tegnet. edit: fant ut av dettte på egenhånd, etter litt prøving og feiling Endret 3. februar 2006 av anbe4
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå