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.
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