|
一、请楼主不要说错别字,“未=未来,未尾(错)”,“末尾”才对。
二、楼主,你需要明白,在VBE中,每个以 Sub XXX()开头的一行,是一个小程序(也叫:过程)的起始标志行,每个以 End Sub 结尾的行为结束标志行。就是说,哪怕从 Sub XXX()到 End Sub里面没有一行代码,但它也是一个小过程,或叫小程序,也可以叫做一个程序模块。比如说:Sub China()...End Sub这个模块代码中,Sub China()这行只是程序开始一行,不算做代码;而 End Sub 这行,也不算做代码。所以,要想合并一些代码到一个过程(程序)中,需要复制/拷贝 Sub China()到 End Sub 之间的代码,而不要连 Sub China()这行和 End Sub 这行都复制了。——但是,现在还有更简单的方法:比如说:Sub China()这个过程,它的过程名称是 China,所以,你只须把 China 这几个字符复制到 某个过程(程序)中即可(后面的双英文括号不要复制!),而不必复制该过程的具体代码,这也叫引用 China 这个过程。你要保证一个过程(也叫程序)模块只有一个起始标志行 Sub XXX(),中间是若干代码,最后是以 End Sub 结束该模块代码,即:
Sub China()
代码行...代码行...(注意代码行都是缩进4个字符的)----要拷贝就拷贝这些代码行!只须录制一个新宏,再把各个过程的”过程名字“,如 Sub China()中的 China 复制到新录制的宏中即可,没用的行注释掉。
End Sub
三、我和楼主是一样的系统,我也是 XP 系统,Word2003,那么楷体字的字体名称就是:楷体_GB2312(GB的意思是”国标“,=国家标准)。
四、下面附上昨天两个宏和今天这个添加下箭头的宏:(由于楼主不要颜色不要下划线,所以都去掉了,不必更改任何代码。如果文章较长,请耐心等待,直到出现“处理完毕”消息框为止。)
*****
Sub 末行首字前插入下箭头()
'功能:在所有首行缩进的段落末尾一行的首字前面加一个↓(段未满行的除外,单独一行首行缩进的除外)
On Error Resume Next
Dim i As Paragraph, LineCount As Integer, l As String, LineNum As Long
For Each i In ActiveDocument.Paragraphs
If i.Range.ParagraphFormat.CharacterUnitFirstLineIndent <> 0 And i.Range.ParagraphFormat.FirstLineIndent <> CentimetersToPoints(0) Then
i.Range.Select
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine
If Asc(Selection) <> 13 Then
' i.Range.Font.Color = wdColorRed
i.Range.Select
'段落行数
CommandBars("Word Count").Controls(2).Execute
l = CommandBars("Word Count").Controls(1).List(6)
LineCount = Int(Mid(l, 1, Len(l) - 1))
LineNum = LineCount
'添加↓符号
Selection.EndKey Unit:=wdLine
Selection.HomeKey Unit:=wdLine
Selection.TypeText Text:="↓"
'段落行数
Selection.Paragraphs(1).Range.Select
CommandBars("Word Count").Controls(2).Execute
l = CommandBars("Word Count").Controls(1).List(6)
LineCount = Int(Mid(l, 1, Len(l) - 1))
If LineCount = LineNum + 1 Then Selection.Find.Execute FindText:="↓", ReplaceWith:="", Replace:=wdReplaceAll
End If
End If
Next
Selection.HomeKey Unit:=wdStory
MsgBox "处理完毕!!!!!!!!!!!!", vbOKOnly + vbExclamation, "末行首字前插入下箭头"
End Sub
Sub 查找宋体小二黄色文字替换为红色()
'功能:如在同一篇的文档内2种字体一样(宋体)、字号不一样(小三15、小二18)但颜色相同(黄色)要更改小二的颜色为红色
'查找宋体,添加单下划线
Dim i As Paragraph, n As Long
For Each i In ActiveDocument.Paragraphs
For n = 1 To i.Range.Characters.Count
If i.Range.Characters(n).Font.Name = "宋体" Then i.Range.Characters(n).Font.Underline = wdUnderlineSingle '单下划线
Next n
Next
'查找小二/黄色替换为红色
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Size = 18 '小二
.Font.Color = wdColorYellow '黄色(替换前)
.Font.Underline = wdUnderlineSingle '单下划线
With .Replacement
.ClearFormatting
.Font.Color = wdColorRed '红色(替换后)
' .Font.Underline = wdUnderlineDouble '双下线划(此语句可删除或屏蔽)
End With
.Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
End With
'取消单下划线
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Underline = wdUnderlineSingle '单下划线
With .Replacement
.ClearFormatting
.Font.Underline = wdUnderlineNone '取消单下线划
End With
.Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
End With
MsgBox "处理完毕!!!!!!!!!!", vbOKOnly + vbExclamation, "查找宋体/小二/黄色文字,替换为红色"
End Sub
Sub 查找楷体小三黄色文字替换为红色()
'功能:文档内2种字体不一样(宋体、楷体)、字号一样(小三)颜色相同(黄色)要更改楷体为红色
'查找楷体,添加单下划线
Dim i As Paragraph, n As Long
For Each i In ActiveDocument.Paragraphs
For n = 1 To i.Range.Characters.Count
If i.Range.Characters(n).Font.Name = "楷体_GB2312" Then i.Range.Characters(n).Font.Underline = wdUnderlineSingle '单下划线
Next n
Next
'查找小三/黄色替换为红色
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Size = 15 '小三
.Font.Color = wdColorYellow '黄色(替换前)
.Font.Underline = wdUnderlineSingle '单下划线
With .Replacement
.ClearFormatting
.Font.Color = wdColorRed '红色(替换后)
' .Font.Underline = wdUnderlineDouble '双下线划(此语句可删除或屏蔽)
End With
.Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
End With
'取消单下划线
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Underline = wdUnderlineSingle '单下划线
With .Replacement
.ClearFormatting
.Font.Underline = wdUnderlineNone '取消单下线划
End With
.Execute FindText:="", ReplaceWith:="", Format:=True, Replace:=wdReplaceAll
End With
MsgBox "处理完毕!!!!!!!!!!", vbOKOnly + vbExclamation, "查找楷体小三黄色文字替换为红色"
End Sub |
|