Avatar billede arj79 Nybegynder
29. oktober 2004 - 12:05 Der er 18 kommentarer og
1 løsning

Makro der sætter der sætter billeder ind i et word dokument

Jeg har en template hvor der skal være 4 billeder(4*4 cm).
Der skal stå under hinannen ude i højre side, på side 2 og op efter.
Brugeren skal selv kunne vælge hvilke billeder der skal sættes in fra et diritory.
Her der nogen der ved hvordan jeg gør det.????????
Avatar billede supertekst Ekspert
29. oktober 2004 - 14:26 #1
Hvad er det største problem:
- at lade brugere vælge billed
- at indsætte dette
- tilpasse størrelse og placering?

Prøv at "indspille en makro", der indsætter et billede - så er du på vej...
Ellers giv signal.

MVH
Avatar billede arj79 Nybegynder
29. oktober 2004 - 14:54 #2
billederne er allerede 4x4cm . mit problem er at jeg skal finde en smart måde at sætte billeder ind, og få dem til at stå ens på alle sider efter den første.
Avatar billede arj79 Nybegynder
29. oktober 2004 - 15:16 #3
til at starte med ville jeg høre om der er nogen der ved hvordan jeg kan få en makro til.
1. at få et vindu op hvor jeg kan vælge hvilket billede jeg vil sætte ind
2. få billede til at være in front of text
3. give billedet en absolute position
Avatar billede arj79 Nybegynder
01. november 2004 - 10:29 #4
nu har jeg fundet ud af hvordan jeg kan sætte et billede ind med en makro.
Sub indsæt()
'
' indsæt Macro
' Macro recorded 29-10-2004 by aj-labtop
'
    Dialogs(wdDialogInsertPicture).Show
End Sub
nu skal jeg bare have givet det billede jeg sætter ind en absolute position og sætte det til at være In Front Of Text
Avatar billede rvm Nybegynder
18. november 2004 - 15:32 #5
Du kunne indsætte 4 tekstbokse. Indsæt derefter et bogmærke i hver tekstboks.
Kør derefer denne kode:

Sub IndsætBilleder()
    ActiveDocument.Bookmarks("Nr1").Select
    Dialogs(wdDialogInsertPicture).Show

    ActiveDocument.Bookmarks("Nr2").Select
    Dialogs(wdDialogInsertPicture).Show
   
    ActiveDocument.Bookmarks("Nr3").Select
    Dialogs(wdDialogInsertPicture).Show

    ActiveDocument.Bookmarks("Nr4").Select
    Dialogs(wdDialogInsertPicture).Show
End Sub
Avatar billede rvm Nybegynder
18. november 2004 - 15:34 #6
Det smarte ved denne metode er at du ikke skal bekymre dig om placering og tekstombrydning - den sætter du på tekstboksen :-)
Avatar billede arj79 Nybegynder
16. december 2004 - 10:29 #7
undskyld det har taget så lang tid men nu har jeg fået testet det nu mangler jeg bare en makro der sætter en testbox på 4X4 cm ind på en absolute position og in front of text.
Avatar billede rvm Nybegynder
16. december 2004 - 10:40 #8
Hvorfor skal tekstboksen indsættes via kode?
Avatar billede arj79 Nybegynder
16. december 2004 - 17:16 #9
fordi der er ikke altid det same antal text boxe der skal sættes ind
Avatar billede rvm Nybegynder
17. december 2004 - 10:34 #10
her er et forslag:

Sub Addtextbox()
Dim oRange As Range
Dim oShape As Shape

  Set oRange = Selection.Range
  Set oShape = ActiveDocument.Shapes.Addtextbox _
  (Orientation:=msoTextOrientationHorizontal, _
              Left:=0, Top:=0, Width:=100, Height:=100, _
              Anchor:=oRange)
  With oShape
    .Line.Visible = msoFalse
    .Height = 40
    .Width = 40
    .Left = CentimetersToPoints(15)
    .Top = CentimetersToPoints(17)
  End With
 
  oShape.Select

  ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="teksboks1"

  Set oShape = Nothing
  Set oRange = Nothing
End Sub
Avatar billede arj79 Nybegynder
17. december 2004 - 11:36 #11
det er bare for cool det køre. der er lige g2 ting til som jeg håber du kan hjælpe mig med. textboxene skal have en grå baggrund og tildele text boxen et bookmark.
Avatar billede arj79 Nybegynder
17. december 2004 - 11:53 #12
den havde bookmark det havde jeg ikke lige set
Avatar billede rvm Nybegynder
17. december 2004 - 12:07 #13
Linien:
  ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="teksboks1"

indsætter et bogmærke i tekstboksen, så det mangler du vel ikke :-) men du skal selvfølgelig ændre navnet for hver ny tekstboks
Avatar billede rvm Nybegynder
17. december 2004 - 12:08 #14
Tilføj også:

  With oShape
    .Line.Visible = msoFalse
    .Height = 40
    .Width = 40
    .Left = CentimetersToPoints(Left)
    .Top = CentimetersToPoints(Top)
    .Fill.Solid
    .Fill.ForeColor.RGB = RGB(192, 192, 192)
  End With
Avatar billede rvm Nybegynder
17. december 2004 - 12:08 #15
altså kun

    .Fill.Solid
    .Fill.ForeColor.RGB = RGB(192, 192, 192)
Avatar billede arj79 Nybegynder
17. december 2004 - 12:10 #16
tak
Avatar billede rvm Nybegynder
17. december 2004 - 12:18 #17
her har jeg pakket detlind ind, så du kan sætte tekstbaoksene lidt dynamisk :-)
Sub Addtextbox(Left As Integer, Top As Integer, Bogmaerke As String)
Dim oRange As Range
Dim oShape As Shape

ActiveDocument.Bookmarks("Her").Select

  Set oRange = Selection.Range
  Set oShape = ActiveDocument.Shapes.Addtextbox _
  (Orientation:=msoTextOrientationHorizontal, _
              Left:=0, Top:=0, Width:=100, Height:=100, _
              Anchor:=oRange)
  With oShape
    .Line.Visible = msoFalse
    .Height = 40
    .Width = 40
    .Left = CentimetersToPoints(Left)
    .Top = CentimetersToPoints(Top)
    .Fill.Solid
    .Fill.ForeColor.RGB = RGB(192, 192, 192)
  End With
 
  oShape.Select

  ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:=Bogmaerke
 
  ActiveDocument.Bookmarks("Her").Select
 
  Set oShape = Nothing
  Set oRange = Nothing
End Sub


Sub Indsaettekstboks()

ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="Her"

Addtextbox 17, 10, "Nr1"
Addtextbox 17, 20, "Nr2"


End Sub
Avatar billede arj79 Nybegynder
17. december 2004 - 17:32 #18
er det muligt at få den til at udregne position ud fra sidens top og left margins i steden for makøren? og så ville jeg meget gerne hat boxene ikke flyttede sig med teksten. det ville være cool
Avatar billede rvm Nybegynder
20. december 2004 - 10:57 #19
ret makroen så den ser sådan ud:

With oShape
    .RelativeHorizontalPosition = _
        wdRelativeHorizontalPositionPage
    .RelativeVerticalPosition = _
        wdRelativeVerticalPositionPage
    .LockAnchor = False
    .Line.Visible = msoFalse
    .Height = 40
    .Width = 40
    .Left = CentimetersToPoints(Left)
    .Top = CentimetersToPoints(Top)
    .Fill.Solid
    .Fill.ForeColor.RGB = RGB(192, 192, 192)
End With
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester