一键将一篇文字中的所有弯角引号替换为直角引号
为了解释「宏」的作用,我先举一个简单的例子。
【实例1】
把文中所有弯角引号替换为直角引号
我之前公司的剧本,和知乎的潮流一样,是用直角引号的。但有的编剧同事,比如@殷鉴老师,惯用的输入法没法方便地打出直角引号来,所以,只好在每次写完一集剧本后,「全部替换」一遍左引号,再「全部替换」一遍右引号。如果文中还有单引号,那就再分别「全部替换」左、右两种单引号。
使用宏的话,这个问题可以「一键解决」。只要在「宏」选项上选择「录制宏」,然后按照往日的顺序,操作那四次「全部替换」,然后在「宏」选项上选择「停止录制」,一个新的宏就诞生了。
如果开始录制的时候选择了「将宏指定到按钮」,则根据你的设置,Word的面板上会有一个该宏的按钮。
如果选择的是「将宏指定到键盘」,则根据你的设置,该宏有一个特定的快捷键。
当你再想把一篇文字中的所有弯角引号替换为直角引号时,再也不需要进行那些繁琐的操作了,只要按一下你给这个宏设定的快捷键,所有替换工作就会自动完成。
它的本质就是把你的操作记录了下来,然后进行「重放」。
就像无色禅师送给郭襄的那对铁罗汉——那算得上一个记录了少林罗汉拳的「宏」。按一下快捷键,它们就把罗汉拳从头到尾打一遍。
真是简单得不能再简单了。
当然,你也可以不指定快捷方式,而是通过「查看宏」到宏列表中选择想要编辑或使用的宏。
在编辑界面中你会看到这个宏的代码,大致就是这样——
Sub 弯角引号替换为直角引号()
' 弯角引号替换为直角引号 宏
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(8220)
.Replacement.Text = "「"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "“"
.Replacement.Text = "「"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "”"
.Replacement.Text = "」"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "‘"
.Replacement.Text = "『"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "’"
.Replacement.Text = "』"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
事实上,如果你懒得录制宏,直接把这段代码复制粘贴到宏的编辑器里都行。