Avatar billede henl Nybegynder
18. maj 2006 - 14:04 Der er 1 kommentar

Automatisk hente subdocuments til et masterdocument

Problemet går på at jeg har en række dokumenter liggende i en folderstruktur, som jeg automatisk skal samle i flere masterdokumenter.
Det jeg vil er derfor at oprette en macro hvor jeg angiver en sti til hvor dokumenterne ligger og så laves der et hoveddokument, med tilhørende indholdsfortegnelse og sidehoved og sidefod.

Nu er jeg ikke supergod til VBA så det driller maks.

Håber i kan hjælpe mig igang.
Avatar billede henl Nybegynder
30. maj 2006 - 16:10 #1
Og her lidt kode. Sidehoved og sidefod driller, da der indsættes en hulens bunke sectionbreaks, når man bruger subdocuments. Nogen måde at undgå de sectionbreaks og kun have pagebreaks??


Sub A_WORDopslag_HENL()

Selection.WholeStory
Selection.Delete Unit:=wdCharacter, Count:=1 'slet alt i dokumentet
Selection.HomeKey Unit:=wdStory

Set fs = Application.FileSearch
With fs
   
    .LookIn = "T:\ETOman\Budget & Actual 2006\Q1-estimate 2006\ETO - Investeringer Q1-2006 - Originaler\Copy of PBP\" 'HUSK..! sidste backslash '\'
    .FileName = "*.doc"
    .SearchSubFolders = True
    If .Execute(SortBy:=msoSortByFileName, _
    SortOrder:=msoSortOrderAscending) > 0 Then
        MsgBox "There were " & .FoundFiles.Count & _
            " file(s) found."
        For i = 1 To .FoundFiles.Count
            Dim FilnavnVar As String
            FilnavnVar = fs.FoundFiles(i) 'sæt variablen til den fundne fils fulde stinavn
            Subdoc (FilnavnVar) 'kald indsætfunktionen med fuld filsti som parameter
        Next i
    Else
        MsgBox "There were no files found."
    End If
End With
   
A_Index    'kald funktion for index

End Sub
Function Subdoc(FundetFilVar As String)

Dim LastBSlash As Integer

LastBSlash = InStrRev(FundetFilVar, "\")

If (Mid(FundetFilVar, LastBSlash + 1, 1) <> "~") Then
    ActiveDocument.ActiveWindow.View.Type = wdMasterView
    ActiveDocument.Subdocuments.AddFromFile _
        Name:=FundetFilVar 'indsæt den fundne fil (parameteroverført) som subdocument

    Selection.InsertBreak Type:=wdPageBreak 'indsæt sideskift i master document
End If

End Function
Function A_Index()

    Selection.HomeKey Unit:=wdStory
   
    Selection.Font.Size = 16
    Selection.Font.Bold = wdToggle
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    Selection.TypeText Text:="Indholdsfortegnelse"
    'Selection.HomeKey Unit:=wdLine, Extend:=wdExtend

    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
   
       
    Selection.TypeParagraph
    Selection.TypeParagraph
    With ActiveDocument
        .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
            True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
            LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
            UseHyperlinks:=True, HidePageNumbersInWeb:=True
        .TablesOfContents(1).TabLeader = wdTabLeaderDots
        .TablesOfContents.Format = wdIndexIndent
    End With
   
Selection.InsertBreak Type:=wdPageBreak 'indsæt sideskift i master document (til INDEX)

End Function
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
Kurser inden for grundlæggende programmering

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