Макрос разметки MS Word
Материал из PraxOS
SubWord2MediaWiki()
- Application.ScreenUpdating=False
 - ReplaceQuotes
 - MediaWikiEscapeChars
 - MediaWikiConvertHyperlinks
 - MediaWikiConvertH1
 - MediaWikiConvertH2
 - MediaWikiConvertH3
 - MediaWikiConvertH4
 - MediaWikiConvertH5
 - MediaWikiConvertItalic
 - MediaWikiConvertBold
 - MediaWikiConvertUnderline
 - MediaWikiConvertStrikeThrough
 - MediaWikiConvertSuperscript
 - MediaWikiConvertSubscript
 - MediaWikiConvertLists
 - MediaWikiConvertTables
 - 'Copytoclipboard
 - ActiveDocument.Content.Copy
 - Application.ScreenUpdating=True
 
EndSub
PrivateSubMediaWikiConvertH1()
- ReplaceHeadingwdStyleHeading1,"="
 
EndSub
PrivateSubMediaWikiConvertH2()
- ReplaceHeadingwdStyleHeading2,"=="
 
EndSub
PrivateSubMediaWikiConvertH3()
- ReplaceHeadingwdStyleHeading3,"==="
 
EndSub
PrivateSubMediaWikiConvertH4()
- ReplaceHeadingwdStyleHeading4,"===="
 
EndSub
PrivateSubMediaWikiConvertH5()
- ReplaceHeadingwdStyleHeading5,"====="
 
EndSub
PrivateSubMediaWikiConvertBold()
- ActiveDocument.Select
 - WithSelection.Find
 
- .ClearFormatting
 
- .Font.Bold=True
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- IfLen(.Text)>1AndInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 
- IfNot.Text=vbCrThen
 
- .InsertBefore""
 
- .InsertAfter""
 
- EndIf
 
- .Style=ActiveDocument.Styles("DefaultParagraphFont")
 
- .Font.Bold=False
 
- EndWith
 
- Loop
 
- EndWith
 
EndSub
PrivateSubMediaWikiConvertItalic()
- ActiveDocument.Select
 
- WithSelection.Find
 
- .ClearFormatting
 
- .Font.Italic=True
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- IfLen(.Text)>1AndInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 
- IfNot.Text=vbCrThen
 
- .InsertBefore""
 
- .InsertAfter""
 
- EndIf
 
- .Style=ActiveDocument.Styles("DefaultParagraphFont")
 
- .Font.Italic=False
 
- EndWith
 
- Loop
 
- EndWith
 
EndSub
PrivateSubMediaWikiConvertUnderline()
- ActiveDocument.Select
 
- WithSelection.Find
 
- .ClearFormatting
 
- .Font.Underline=True
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- IfLen(.Text)>1AndInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 
- IfNot.Text=vbCrThen
 
- .InsertBefore""
 
- .InsertAfter""
 
- EndIf
 
- .Style=ActiveDocument.Styles("DefaultParagraphFont")
 
- .Font.Underline=False
 
- EndWith
 
- Loop
 
- EndWith
 
EndSub
PrivateSubMediaWikiConvertStrikeThrough()
- ActiveDocument.Select
 
- WithSelection.Find
 
- .ClearFormatting
 
- .Font.StrikeThrough=True
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- IfLen(.Text)>1AndInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 
- IfNot.Text=vbCrThen
 
- .InsertBefore"-"
 
- .InsertAfter"-"
 
- EndIf
 
- .Style=ActiveDocument.Styles("DefaultParagraphFont")
 
- .Font.StrikeThrough=False
 
- EndWith
 
- Loop
 
- EndWith
 
EndSub
PrivateSubMediaWikiConvertSuperscript()
- ActiveDocument.Select
 
- WithSelection.Find
 
- .ClearFormatting
 
- .Font.Superscript=True
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- .Text=Trim(.Text)
 
- IfLen(.Text)>1AndInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 
- IfNot.Text=vbCrThen
 
- .InsertBefore"^"
 
- .InsertAfter"^"
 
- EndIf
 
- .Style=ActiveDocument.Styles("DefaultParagraphFont")
 
- .Font.Superscript=False
 
- EndWith
 
- Loop
 
- EndWith
 
EndSub
PrivateSubMediaWikiConvertSubscript()
- ActiveDocument.Select
 
- WithSelection.Find
 
- .ClearFormatting
 
- .Font.Subscript=True
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- .Text=Trim(.Text)
 
- IfLen(.Text)>1AndInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 
- IfNot.Text=vbCrThen
 
- .InsertBefore"~"
 
- .InsertAfter"~"
 
- EndIf
 
- .Style=ActiveDocument.Styles("DefaultParagraphFont")
 
- .Font.Subscript=False
 
- EndWith
 
- Loop
 
- EndWith
 
EndSub
PrivateSubMediaWikiConvertLists()
- DimparaAsParagraph
 
- ForEachparaInActiveDocument.ListParagraphs
 
- Withpara.Range
 
- .InsertBefore""
 
- Fori=1To.ListFormat.ListLevelNumber
 
- If.ListFormat.ListType=wdListBulletThen
 
- .InsertBefore"*"
 
- Else
 
- .InsertBefore"#"
 
- EndIf
 
- Nexti
 
- .ListFormat.RemoveNumbers
 
- EndWith
 
- Nextpara
 
EndSub
PrivateSubMediaWikiConvertTables()
- DimthisTableAsTable
 
- ForEachthisTableInActiveDocument.Tables
 
- WiththisTable
 
- ForEachaRowInthisTable.Rows
 
- WithaRow
 
- ForEachaCellInaRow.Cells
 
- WithaCell
 
- aCell.Range.InsertBefore"|"
 
- 'aCell.Range.InsertAfter"|"
 
- EndWith
 
- NextaCell
 
- '.Range.InsertBefore"|"
 
- .Range.InsertAftervbCrLf+"|-"
 
- EndWith
 
- NextaRow
 
- .Range.InsertBefore"{|"+vbCrLf
 
- .Range.InsertAftervbCrLf+"|}"
 
- .ConvertToText"|"
 
- EndWith
 
- NextthisTable
 
EndSub
PrivateSubMediaWikiConvertHyperlinks()
- DimhyperCountAsInteger
 
- hyperCount=ActiveDocument.Hyperlinks.Count
 
- Fori=1TohyperCount
 
- WithActiveDocument.Hyperlinks(1)
 
- DimaddrAsString
 
- addr=.Address
 
- .Delete
 
- .Range.InsertBefore"["
 
- .Range.InsertAfter"-"&addr&"]"
 
- EndWith
 
- Nexti
 
EndSub
'Replaceallsmartquoteswiththeirdumbequivalents
PrivateSubReplaceQuotes()
- DimquotesAsBoolean
 
- quotes=Options.AutoFormatAsYouTypeReplaceQuotes
 
- Options.AutoFormatAsYouTypeReplaceQuotes=False
 
- ReplaceStringChrW(8220),""""
 
- ReplaceStringChrW(8221),""""
 
- ReplaceString"‘","'"
 
- ReplaceString"’","'"
 
- Options.AutoFormatAsYouTypeReplaceQuotes=quotes
 
EndSub
PrivateSubMediaWikiEscapeChars()
- EscapeCharacter"*"
 
- EscapeCharacter"#"
 
- 'EscapeCharacter"_"
 
- 'EscapeCharacter"-"
 
- 'EscapeCharacter"+"
 
- EscapeCharacter"{"
 
- EscapeCharacter"}"
 
- EscapeCharacter"["
 
- EscapeCharacter"]"
 
- EscapeCharacter"~"
 
- EscapeCharacter"^^"
 
- EscapeCharacter"|"
 
- EscapeCharacter"'"
 
EndSub
PrivateFunctionReplaceHeading(styleHeadingAsString,headerPrefixAsString)
- DimnormalStyleAsStyle
 
- SetnormalStyle=ActiveDocument.Styles(wdStyleNormal)
 
- ActiveDocument.Select
 
- WithSelection.Find
 
- .ClearFormatting
 
- .Style=ActiveDocument.Styles(styleHeading)
 
- .Text=""
 
- .Format=True
 
- .MatchCase=False
 
- .MatchWholeWord=False
 
- .MatchWildcards=False
 
- .MatchSoundsLike=False
 
- .MatchAllWordForms=False
 
- .Forward=True
 
- .Wrap=wdFindContinue
 
- DoWhile.Execute
 
- WithSelection
 
- IfInStr(1,.Text,vbCr)Then
 
- 'Justprocessthechunkbeforeanynewlinecharacters
 
- 'We'llpick-uptherestwiththenextsearch
 
- .Collapse
 
- .MoveEndUntilvbCr
 
- EndIf
 
- 'Don'tbothertomarkupnewlinecharacters(preventsaloop,aswell)
 - IfNot.Text=vbCrThen
- .InsertBeforeheaderPrefix
 - .InsertBeforevbCr
 - .InsertAfterheaderPrefix
 
 - EndIf
 - .Style=normalStyle
 
- EndWith
 
- Loop
 
- EndWith
 
EndFunction
PrivateFunctionEscapeCharacter(charAsString)
- ReplaceStringchar,"\"&char
 
EndFunction
PrivateFunctionReplaceString(findStrAsString,replacementStrAsString)
- Selection.Find.ClearFormatting
 - Selection.Find.Replacement.ClearFormatting
 - WithSelection.Find
- .Text=findStr
 - .Replacement.Text=replacementStr
 - .Forward=True
 - .Wrap=wdFindContinue
 - .Format=False
 - .MatchCase=False
 - .MatchWholeWord=False
 - .MatchWildcards=False
 - .MatchSoundsLike=False
 - .MatchAllWordForms=False
 
 - EndWith
 - Selection.Find.ExecuteReplace:=wdReplaceAll
 
EndFunction
