欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  Office

一键将一篇文字中的所有弯角引号替换为直角引号

程序员文章站 2023-11-01 13:41:52
为了解释「宏」的作用,我先举一个简单的例子。 【实例1】 把文中所有弯角引号替换为直角引号 我之前公司的剧本,和知乎的潮流一样,是用直角引号的。但有的编剧同...

为了解释「宏」的作用,我先举一个简单的例子。

【实例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

事实上,如果你懒得录制宏,直接把这段代码复制粘贴到宏的编辑器里都行。