找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 办公系列 Word 查看内容

改错小秘书

2010-1-22 18:08| 发布者: admin| 查看: 87| 评论: 0|原作者: 江海

   实例二:EmEditor自动校对宏EmEditor 4.0中增加了对JavaScript及VBScript的支持,所以自动校对宏对编程爱好者来说很容易实现,但对于普通用户可能麻烦一些。第一步:打开EmEditor,输入下面的内容(英文单引号“'”及其后面的字符是注释,不必输入):document.selection.StartOfDocument false  '将光标定位到文件开头xxx=1Do while xxx=1document.selection.Replace Chr(34),"“",eeFindNext'将搜索到的第一个"替换为“xxx=document.selection.Replace(Chr(34),"”",eeFindNext)'将搜索到的第二个"替换为”,同时判断其替换命令是否成功loopdocument.selection.Replace "其它","其他",eeFindNext Or eeReplaceAll'将所有的“其它”替换为“其他”第二步:将该宏保存至任意文件夹,并命名为“自动校对.vbee”,然后在EmEditor的菜单中选择“宏→选择”,打开“自动校对.vbee”。第三步:打开需要自动校对的文档后,选择菜单中的“宏→自动校对.vbee”即可。Just Do It在EmEditor的宏中“document.selection.Replace "xxx","XXX",eeFindNext Or eeReplaceAll”这一个语句可完成一个替换(其中xxx为要替换的文字,而XXX为替换后的文字),请你实践添加将“软体”替换为“软件”的语句。实例三:Word自动校对宏在Word中,宏是用VBA来实现的,由于Word功能强大,再加上在VBA中“”与""被视为同一字符,所以实现起来就要麻烦一些。第一步:启动Word,选择菜单中的“工具→宏→Visual Basic编辑器”命令,进入VBA编辑状态。第二步:在右侧“工程”窗口选中“Normal”项,再选择菜单中的“插入→模块”项,插入模块。注意,选择“Normal”项,制作的宏对所有文档有效;如果选择“Project(文档1)”项,则制作的宏仅适用于当前打开的文档。第三步:将下述代码输入到“normal-模块1”中(英文单引号“'”及其后面的字符是注释,不必输入):Sub 字符替换() '宏名称,可修改为其他字符With ActiveDocument.Content.Find '在当前文档中进行查找.Text = "其它" '被替换的字符.Replacement.Text = "其他" '替换的字符.Execute Replace:=wdReplaceAll, Forward:=True '替换全部End WithEnd Sub Just Do It从上述代码中可以看出,只要在“With ActiveDocument.Content.Find”与“End With”间重复输入“.Text =”到“.Execute Replace:=wdReplaceAll, Forward:=True”这三行代码,修改相应字符,即可添加替换多个字符的宏代码。请你尝试增加将“hxxp”替换为“http”的宏语句。 第四步:以上部分仅完成了“其它”替换为“其他”的操作,下面还要继续完成英文引号替换为中文引号的操作(见图2)。输入如下代码(英文单引号“'”及其后面的字符是注释,不必输入):Sub 替换引号()Dim Countx As Integer, i As Integer, Sh As Byte '声明变量'以下代码统计出文中的引号数目(包括""“”)Countx = 0On Error Resume NextWith ActiveDocument.Content.FindDo While .Execute(FindText:="""", Forward:=True, Format:=True) = TrueCountx = Countx 1Loop'以下代码判断引号是否配对出现Sh = Countx Mod 2If Sh <> 0 ThenMsgBox "引号不配对!"Exit Sub '如果引号不配对,则退出宏End IfEnd WithFor i = 1 To CountxSh = i Mod 2 '求i值除以2的余数If Sh <> 0 Then '如果余数不等于0(即为奇数),则将相应的引号替'换为“前z”With ActiveDocument.Content.Find.Text = """".Replacement.Text = "前z".Execute Replace:=wdReplaceOne, Forward:=TrueEnd WithElseWith ActiveDocument.Content.Find '反之则将相应的引号替换为“后z”.Text = """".Replacement.Text = "后z".Execute Replace:=wdReplaceOne, Forward:=TrueEnd WithEnd IfNext '进行下一对引号的替换With ActiveDocument.Content.Find'以下代码将所有的“前z”替换为左引号.Text = "前z".Replacement.Text = "“".Execute Replace:=wdReplaceAll, Forward:=True'以下代码将所有的“后z”替换为右引号.Text = "后z".Replacement.Text = "”".Execute Replace:=wdReplaceAll, Forward:=TrueEnd WithEnd Sub 第五步:输入完成后,关闭VBA编辑窗口即可。接着用Word打开需要修改的文档(或将相应文本复制到Word的一个文档中)。依次选择菜单中的“工具→宏→宏”项(或按“Alt F8”键),打开“宏”对话框,选中相应宏(“字符替换”或“替换引号”),点击“运行”按钮即可。第六步:如果觉得上述运行宏的方法比较麻烦,想每打开一个文档,就让宏自动运行一次,只要在刚才的宏窗口中,继续输入如下代码即可:Sub AutoOpen()call 字符替换call 替换引号End Sub现在你再打开新文档,Word就会自动帮你完成校对任务了!小编有话说:为了方便读者使用,你可以从http://www.newhua/cfan/200413/宏.RAR下载本文提到的所有宏代码,另外这里要特别感谢ExcelHome论坛的守柔网友提供的Word引号替换宏代码。

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 17:28 , Processed in 0.204985 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部