14. februar 2002 - 12:39Der er
14 kommentarer og 1 løsning
(Macro?)-Program til at konvertere sideopsætning og skrifttype på mange dokumenter?
Hej ..
Dette er et af sp. for de langhårede!
Findes der et program, enten shareware, eller macro program eller andet i den retning, som kan tage en lang række word-dokumenter, og convertere dem om til en ny opsætning.
Når jeg siger opsætning menes der sidehoved, sidefod, skifttype/størrelse, afstand til magin osv.
Grunden er at en virksomheden har skiftet navn, og har flere tusind sags-filer liggende som skal have ændret udseende.
Alternativet er at de skal sidde og skifte det om manuelt hver gang de åbner en fil med gammelt "layout".
Jeg giver 150 point til guru'en som kan hjælpe her! :)
Kan du ikke bare indspille en makro, der udfører den pågældende sideopsætninger, markerer alt, og ændrer skrifttype. Efterflg. kan makroen indsættes som en knap på værktøjslinien, og ved åbning af de gamle dokumenter, klikker man så på knappen, og efterflg. "Gem".
prøv at bruge f1 tasten der hvor du har problemet altså du laver først en makro og gemmer så går du ind i funktioner og vælger makro og så makroer det åbner en dialogbox som giver dig mulighed for at redigerer din makro du er nu i vba og der sætter du pormten og trykker på f1 så skal du se noget prøv også eksembler der hvor du kommer hen til sidst finder du menu pungtet compiller så vil den fortælle dig hvor du har fejl indtastninger
Her er et loop, der åbner de dokumenter, der ligger i en mappe eller i undermapper til mappen. I dette tilfælde sættes en konstant i dokumentet, men du kan optage de ændringer du gerne vil have foretaget på dokumenterne og klippe dem ind i loop'et
Sub Løkke()
With Application.FileSearch .NewSearch .LookIn = "C:\Documents and Settings\rima2-pc1\Skrivebord\Kodeeksempler" .FileName = "*.*" .SearchSubFolders = True .Execute .FileType = msoFileTypeWordDocuments
For i = 1 To .FoundFiles.Count Documents.Open FileName:=.FoundFiles(i)
'Her kan gøres alt muligt ved det aktuelle åbne dokument 'I dette tilfælde sideopsætningen With ActiveDocument.PageSetup .LineNumbering.Active = False .Orientation = wdOrientPortrait .TopMargin = CentimetersToPoints(2.7) .BottomMargin = CentimetersToPoints(3) .LeftMargin = CentimetersToPoints(1.7) .RightMargin = CentimetersToPoints(2) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(1.25) .FooterDistance = CentimetersToPoints(1.25) .PageWidth = CentimetersToPoints(21) .PageHeight = CentimetersToPoints(29.7) .FirstPageTray = wdPrinterDefaultBin .OtherPagesTray = wdPrinterDefaultBin .SectionStart = wdSectionNewPage .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .VerticalAlignment = wdAlignVerticalTop .SuppressEndnotes = False .MirrorMargins = False .TwoPagesOnOne = False .BookFoldPrinting = False .BookFoldRevPrinting = False .BookFoldPrintingSheets = 1 .GutterPos = wdGutterPosLeft .SectionDirection = wdSectionDirectionLtr End With
'Ændring af sidehovedet If ActiveWindow.View.SplitSpecial <> wdPaneNone Then ActiveWindow.Panes(2).Close End If If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ ActivePane.View.Type = wdOutlineView Then ActiveWindow.ActivePane.View.Type = wdPrintView End If ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader Selection.TypeText Text:="sdfgdsgd" 'Lukker sidehovedet ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument ActiveDocument.Close SaveChanges:=wdSaveChanges Next End With End Sub
ellers må du sende mig noget som jeg kan løse problemet for dig altså noget som liner den fil som du vil lave om og noget så jeg kan se hvad jeg skal lave den om til ib_14@hotmail.com
rvm : Det ser virkeligt kanont ud det du der laver .. Men nuværende har vi en makro der åbner et "Standard-dokument" ud fra en Normal.dot i brugerens private mappe. Kan du justere koden så den tager blot laver dokumentet om til at følge opsætningen for den nye "normal.dot" ? Det ville jo gøre det hele lidt nemmere. :)
ib_14 : Jeg kan desværre ikke se hvad jeg skal bruge din oplysning om at du er karseklippet til!
Jeg forstår ikke rigtigt hvad du vil have mig til *S*
Jeg troede du havde en masse doumenter du ville have lavet om på en gang, så det nye layout afspejlede sig direkte i dem. Min kode er bare et forslag, hvor du f.eks. selv kan skrive hvilke fontstørrelse du vil have (bare skriv 14 i stedet for 12) og hvilke marginer der skal være.
Okay rvm .. jeg ser om ikke jeg skulle kunne finde ud af det. :) Kan den tage undermapper med ?
Grunden til at jeg spørger om vb koden kan laves så den blot følger opsætningen i en normal.dot fil, er at der på deres brevpapir er forskel på opsætning mth placering af navne og adresser og sådan . :)
Derfor tænkte jeg om man kunne lave makroen så den tog word-dokumenterne og lavede dem om så de passede med layoutet for det nye design.
Min kode kan godt tage undermapper med (.SearchSubFolders = True) *S*
Det er ikke sådan lige at lave om på dokumeter der allerede er skrevet, hvis de ikke er ens - det kræver at man kender alle forskelligehder og tager højde dfor dem i koden - meget omstændigt...
Men det er ikke så godt i har fosekelige brevstandarder. Det ville være bedre, hvis alle brugte samme skabelon, der under opstart personificerede skabelonen ved f.eks. at hente brugernes data i en fil lagt på computeren og sætte dem ind ved et bogmærke.
Okay .. det er sq lidt for omstændig for mig tror jeg nok .. :D
Jeg havde lige en snak med ledelsen, og den løsning der ville passe dem bedst var at de blot havde en knap der lavede det åbne dokument om til den nye opsætning ..
Jeg er sq tæmmelig ked af at spørge om du vil tilrette/lave om på makoen så den sætte dokumentet op til at følge de nye standardeer.
Hvis du lige vil lave den om acceptere jeg .. og jeg kyler også lige yderligere 50 point på for dit hårde arbejde.
Jeg plejer selv at gøre det, når jeg skal distribuere "knappen" at jeg har koden til at ligge i en txt fil, og så sætter jeg den bare ind under alle de andre macro'er i VB-editoren, hos de enkelte brugere, og tilføjer så jeg knappen. Det skal kun gøres 14 steder, så det er til at overleve.. :D
Den var den fremgangsmåde jeg fik vist da jeg overtog administrationen af virksomhedens edb-system. Men det skulle da ikke undre mig om der findes en nemmere og smartere måde at dele macro'er på.
Jeg sender dig en mail, når vi har en skabelon klar med den nye opsætning.
Selection.WholeStory Selection.Font.Name = "Times New Roman" Selection.Font.Size = 11 Selection.MoveUp Unit:=wdLine, Count:=1 With ActiveDocument.PageSetup .TopMargin = CentimetersToPoints(3.6) .BottomMargin = CentimetersToPoints(3) .LeftMargin = CentimetersToPoints(2.5) .RightMargin = CentimetersToPoints(2.6) .Gutter = CentimetersToPoints(0) .HeaderDistance = CentimetersToPoints(3.6) .FooterDistance = CentimetersToPoints(3) End With
End Sub
Jeg sender en dot-fil til dig som du bare kan lægge i words startbibliotek hos hver bruger - så vil knappen af sig selv komme frem på værktøjslininen (det gør den hos mig) Start bibliotket finder du under Funktioner/Instillinger/Filplacering
Held og lykke med det
Richardt
Synes godt om
Ny brugerNybegynder
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.