[Word 2003] meerdere afbeeldingen invoegen

Pagina: 1
Acties:
  • 602 views sinds 30-01-2008
  • Reageer

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 04-04 23:16
Voordat ik dit met de hand ga doen wil ik kijken of hier niet iemand een (snellere) oplossing voor weet:

Ik wil in Word op 100 bladzijden 100 afbeeldingen invoegen. Deze afbeeldingen moeten allemaal gecentreerd worden en onder uitgelijnd met de voettekst.

De afbeeldingen zijn gelijk genummerd met de paginanummering en hebben het formaat "picXXX.gif", waar de XXX voor het paginanummer staat. Maar de afbeeldingen mogen van mijn part ook random op de pagina's gezet worden.

Is dit wellicht beter/sneller te doen met bijv. een macro of de VB Editor?

Problem Exists Between Chair And Keyboard


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Om alles tegen de voettekst aan te zetten moet je via File->Page Setup, tabblad Layout en dan de optie Vertical Alignment op Bottom te zetten.

Met de volgende macro worden alle 100 plaatjes ingelezen, je moet waarschijnlijk alleen het pad veranderen.
Het commentaar moet het wat duidelijker maken, dan kan je het misschien wat preciezer aanpassen aan je wensen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub Macro1()

    Const strPAD As String = "C:\Pictures\"
    Const strFILE_PREFIX As String = "Pic"
    Const strFILE_EXT As String = ".gif"
    
    Dim intI As Integer
    Dim strFoto As String
    
    ' selecteer alles en wis het hele document
    Selection.WholeStory
    Selection.Delete Unit:=wdCharacter, Count:=1
    
    ' zet het centreren aan
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    
    For intI = 1 To 100
        ' stel de filenaam samen
        strFoto = strPAD & strFILE_PREFIX & Format(intI, "000") & strFILE_EXT

        ' zet de foto in het document
        Selection.InlineShapes.AddPicture FileName:=strFoto, linktofile:=False, SaveWithDocument:=True
        
        ' zet voor de netheid een enter na het plaatje
        Selection.TypeParagraph
        
        ' zet een pagina break
        Selection.InsertBreak Type:=wdPageBreak
        
    Next intI

End Sub

Bij mij doet hij trouwens wel vaag met sommige files, dan maakt hij er het formaat thumbnails van maar ik weet zo niet hoe dat kan.

  • KingRichard
  • Registratie: September 2002
  • Laatst online: 17-08 19:31

KingRichard

former Duke of Gloucester

offtopic:
:| Ga ik ff een biertje halen, is Lister me voor... Toch maar mijn versie posten, die is natuurlijk veel beterderder. :+ ;)
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub AlleGifjes()
' [TOPIC=842683///][NOHTML][rml][ Word 2003] meerdere afbeeldingen invoegen[/rml][/NOHTML][/TOPIC]

Dim sPath, sCurrentFile As String
Dim iCurrentNumber As Integer
Dim shpCurrentShape As InlineShape

    sPath = "c:\MijnPlaatjes\"      'Map met de plaatjes
    Documents.Add                   'Nieuw document
    iCurrentNumber = 1              'Begin bij 001
    sCurrentFile = "pic" & Format(iCurrentNumber, "000") & ".gif"

    Do While Not Dir(sPath & sCurrentFile) = Empty
    
        Set shpCurrentShape = Selection.InlineShapes.AddPicture(FileName:=sPath & sCurrentFile, _
             LinkToFile:=False, SaveWithDocument:=True)
             
        shpCurrentShape.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
        shpCurrentShape.Range.InsertCaption Label:=wdCaptionFigure, Title:=": " & sCurrentFile, _
            Position:=wdCaptionPositionBelow
            
        Selection.EndKey unit:=wdStory
        Selection.InsertBreak Type:=wdPageBreak
        iCurrentNumber = iCurrentNumber + 1
        sCurrentFile = "pic" & Format(iCurrentNumber, "000") & ".gif"
    Loop
    
End Sub
Bij mijn versie hoef je alleen sPath aan te passen, hij voegt automatisch alle gifjes in die de naam picXXX.gif hebben.
Lister en ik gaan er trouwens vanuit dat de plaatjes niet in een bestaand document met tekst moeten worden ingevoegd, maar in een nieuw document.

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • majornono
  • Registratie: Juni 2002
  • Laatst online: 04-04 23:16
Het was geen script request, maar evengoed ontzettend bedankt.

Is het ook mogelijk om dit te doen zonder de vooronderstelling dat het een nieuw document is?

ik zou graag afb. 1 invoegen op pag 1, afb 2 op pag 2, etc...

Wellicht meer een topic voor P&W?

Problem Exists Between Chair And Keyboard


  • KingRichard
  • Registratie: September 2002
  • Laatst online: 17-08 19:31

KingRichard

former Duke of Gloucester

Alles is mogelijk, zolang je maar in VBA kan vaststellen waar het plaatje ingevoegd moet worden. Dit hangt er erg vanaf hoe je document in elkaar steekt. Met de code hierboven heb je al een aardig opzetje. Neem een macro op en voer de juiste acties uit voor één plaatje. Probeer de gegenereerde code in te passen in de voorbeelden van Lister of van mij.
offtopic:
Scriptrequests worden niet toegestaan, maar ik heb nergens gelezen dat het dumpen van ongevraagde scripts verboden is. Ik vind het leuk om dit soort dingen op te lossen en bovendien zeggen een paar regels scripts soms meer dan lappen uitleg.

[ Voor 28% gewijzigd door KingRichard op 02-12-2003 09:44 . Reden: [offtopic] ]

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


  • majornono
  • Registratie: Juni 2002
  • Laatst online: 04-04 23:16
KingRichard schreef op 02 december 2003 @ 09:40:
offtopic:
...bovendien zeggen een paar regels scripts soms meer dan lappen uitleg.
Helemaal mee eens!

Problem Exists Between Chair And Keyboard

Pagina: 1