三个宏:编号批量前进;错别字替换;将一个总文件按章节来分成小文件

类别:.NET开发 点击:0 评论:0 推荐:


'-----------------------编号批量前进---------------------------------------
Sub 批量前进()
'
' 批量后退,这个宏用于将出版书籍时对编号(如图像编号、章节编号)进行整体调整
' 作者 陈刚 [email protected]
'

Dim prefix As String
Dim startI As Integer
Dim endI As Integer
Dim spaceI As Integer

prefix = InputBox("前缀", "", "图9.")
startI = InputBox("开始")
endI = InputBox("结束", "", "100")
spaceI = InputBox("前进值", "", "1")

Set myRange = ActiveDocument.Content
For i = startI To endI Step 1
    myRange.Find.Execute FindText:=prefix & i, ReplaceWith:=prefix & (i - spaceI), Replace:=wdReplaceAll
Next i

End Sub

'-----------------------错别字替换,用词的统一---------------------------------------

Sub 错别字替换()
'
' 作者 陈刚 [email protected]
'
Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="做为", ReplaceWith:="作为", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="”→“", ReplaceWith:="→", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="->", ReplaceWith:="→", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="点击", ReplaceWith:="单击", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="部分", ReplaceWith:="部份", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="其它", ReplaceWith:="其他", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="右键快捷菜单", ReplaceWith:="右键菜单", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="附带光盘", ReplaceWith:="随书光盘", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="教师", ReplaceWith:="老师", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="图象", ReplaceWith:="图像", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="xml映射文件", ReplaceWith:="XML映射文件", Replace:=wdReplaceAll
myRange.Find.Execute FindText:="eclipse3.1M4\", ReplaceWith:="", Replace:=wdReplaceAll
End Sub


'----------------------将一个总文件按章节来分成小文件--------------------------------------------------


Sub 分章()
    '
    ' 作者 陈刚 [email protected]
    '本书一共26章,分四篇,并且每一篇一个目录。在文档后面有一个没有内容的第27章做结束标志。
    '在使用此宏分章时,需要将光标定位在第一章的开头和目录的结尾
    '

    ' 得到当前路径
    Dim path As String
    path = ActiveDocument.path   '获得当前打开文档(总文档)的绝对路径

    '生成“目录”
    Selection.Find.ClearFormatting
    Selection.Find.Text = "第1章"
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
    Selection.Cut
    Documents.Add DocumentType:=wdNewBlankDocument
    Selection.PasteAndFormat (wdPasteDefault)
    ChangeFileOpenDirectory path
    ActiveDocument.SaveAs FileName:="目录.doc"
    ActiveWindow.Close

    '生成其他文件
    '得到各章的保存目录。共四个目录
    For i = 2 To 27
        If (i >= 2 And i <= 6) Then
            savePath = path & "\第一篇  起步篇(1-5)\"
        ElseIf (i >= 7 And i <= 17) Then
            savePath = path & "\第二篇  SWT_JFace篇(6-16)\"
        ElseIf (i >= 18 And i <= 23) Then
            savePath = path & "\第三篇  插件开发篇(17-22)\"
        ElseIf (i >= 24 And i <= 27) Then
            savePath = path & "\第四篇  WEB开发篇(23-26)\"
        End If
       
        Selection.Find.ClearFormatting
        Selection.Find.Text = "第" & i & "章"
        Selection.Find.Execute      '开始查找
        Selection.MoveLeft Unit:=wdCharacter, Count:=1         '相当于按“<-”光标键
        Selection.HomeKey Unit:=wdStory, Extend:=wdExtend     '相当于按Ctrl+Shift+Home
        Selection.Cut '剪切
        Documents.Add DocumentType:=wdNewBlankDocument '新建一个空白文档
        Selection.PasteAndFormat (wdPasteDefault)  '按原格式粘帖
        ChangeFileOpenDirectory savePath    '设定文件保存目录
        ActiveDocument.SaveAs  '保存
        ActiveWindow.Close '关闭文档
    Next i

End Sub


后记:很奇怪CSDN的博客没有粘帖代码的功能。在Java视线的论坛可以粘帖代码,代码关键字都会变颜色,和设置粗体,看起来舒服很多。

本文地址:http://com.8s8s.com/it/it41796.htm