Gå til innhold

Tegne i Word med visual basic 6.0


Anbefalte innlegg

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
Videoannonse
Annonse

Det skulle ikke være verre enn å tilpasse koden en smule:

 

' Constants used below

Const 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

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: :D fant ut av dettte på egenhånd, etter litt prøving og feiling :D

Endret av anbe4
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...