anbe4 Skrevet 30. januar 2006 Del 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. Lenke til kommentar
aadnk Skrevet 2. februar 2006 Del 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 Lenke til kommentar
anbe4 Skrevet 3. februar 2006 Forfatter Del 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 Lenke til kommentar
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å