27. juni 2002 - 11:44Der er
6 kommentarer og 1 løsning
Word VBA styles conversion
Jeg får ofte dokumenter skrevet af andre og som anvender alle mulige styles - endda på forskellige sprog. dem vil jeg gerne "rense" og kun anvende en foruddefineret style-set jeg har i en template. er der nogen der kender til metoder til at gøre dette enkelt.
jeg tænker på noget VBA i retning af hvis en skrift ser "sådan & sådan" ud skift til style "heading 1" eller simpelthen rense alle styles til en enkelt og så bygge op derfra
Tror det vil tage for lang tid, og kommer der en ny style så skal du ind og ændre det.....
Du må kunne lave noget med : If minStyle <> docStyle then docStyle = minStyle
Kunne dog forestille mig, at du skal chekke skrift type, formatering, størelse osv. enkeltvis, men du vil kunne slippe for at chekke for hver eneste style du får ind, for de må enten være magen til din eller også anderledes.....
er dog ikke inde i vba....kunne forestille mig at det vil ligne det her noget
If docFont <> Arial then docFont = Arial If docFontSize <> 12px then docFontSize = 12px If docFontFormat <> Bold then docFontFormat = Bold
og så fremdeles........
men det er kun et bud, håber dog det kan hjælpe lidt :O)))
Hej udviklingskonsulente, fandt du nogensinde en løsning på problemet?? Jeg står nemlig med præcist samme problem lige nu, og er MEGET interesseret i hvordan man kunne få det løst!! Vil evt. gerne give mange point for det! hilsen bat. Evt. mail mig på bat@abtranevej.dk
Nej - stadig ikke - jeg arbejder stadig på problemet evt. ved en eller anden kode algoritme der kan gøre det, men jeg er ikke god noktil at kode VBA og har ikke tid til at lære det ordentligt.
' Declare variables Dim sThisTemplate As String Dim sTargetDoc As String Dim i As Integer ' Counter 1 - use for copying styles three times Dim iCount As Integer ' Counter 2 - use to loop copying of heading styles Dim rResponse As Variant ' can be vbMsgBoxResult in Word 2000 or later ' Error Handler set On Error GoTo NoDocument ' Call when no document is open. ' Define This Template and Target Document variables sThisTemplate = ThisDocument.FullName ' name and path of global template sTargetDoc = ActiveDocument.FullName 'generates error if no document open ' If any other errors, continue on On Error Resume Next rResponse = MsgBox(Prompt:="This command redefines your Body Text Style and" _ & vbCrLf & "Heading Styles 1-9. Are you sure you want to do this?" _ & vbCrLf & vbCrLf & "If you are not sure, answer 'No' and make a backup of your document." _ & vbCrLf & "Then run the command to copy the styles again.", _ Title:="Are you sure you want to redefine your styles?", _ Buttons:=vbYesNo + vbExclamation) If rResponse = vbNo Then Exit Sub ' Copy Body Text and Heading Styles to Active Document ' Note that this requires exact style names For i = 1 To 3 ' copy styles three times to maintain linkages With Application .OrganizerCopy Source:=sThisTemplate, _ Destination:=sTargetDoc, Name:="Body Text", Object:= _ wdOrganizerObjectStyles For iCount = 1 To 9 'Copy heading styles 1-9 .OrganizerCopy Source:=sThisTemplate, _ Destination:=sTargetDoc, Name:= _ "Heading " & iCount, _ Object:=wdOrganizerObjectStyles Next iCount End With Next i Exit Sub ' Skip error handler routine NoDocument: ' Error Handler - Will be called if there is not an open document MsgBox Prompt:="Sorry, this command is only available when you have a document open.", _ Title:="No document open!", Buttons:=vbExclamation End Sub
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.