word内置命令和VBA编写宏两种方法来实现标点符号之间的全角和半角相互转换
发布时间:2023-06-21 17:15:48
第一,使用word内置的全半角转换
word中全角的标点符号占两个字节,半角的标点符号占一个字节。
在word2010版提供了包括标点符号、字母、数字综合性的全角半角转换。单击开始——更改大小写命令下面的“半角和全角”,如下图所示:
但此内置功能有一个局限是,如果一个文档同时有数字、字母和标点符号混合,估计用起来,就没有预期想要的效果。
比如笔者经常需要处理网上的一些资料,往往是夹杂参合一些全角半角的标点符号,为了让整篇文档的标点符号统一为全角或者是统一为半角,就需要进行转换。
很多朋友的第一想法就是使用word内置的功能,查找替换完成。其实这个方法也是很好的,只是相对繁琐一点。所有的标点符号差不多有27种左右,如果每种标点符号都需要处理一次,就需要进行27次查找替换。
本文的最终目的是想介绍一个批量转换标点符号的宏来实现全半角转换。
第二,全角标点符号批量转换为半角标点符号
操作方法如下:
1.在word中,按ALT+F11组合键,打开VBE编辑器,单击插入——模块,在右边的代码编辑窗口复制下面的代码,并关闭VBE。
2.回到word编辑界面,选中需要转换的区域,然后单击开发工具——宏(或者按ALT+F8键),打开“宏”对话框,选中“全角转换为半角”宏,单击“运行”命令,即可一次性将选中区域的全角标点符号批量转换为半角标点符号。
下面是具体的VBA代码,直接复制粘贴sub 至end sub结束的所有代码。
Sub 全角转换为半角()
'使用前需先选中要替换的区域
Dim fullshape, halfshape As String, i As Integer '定义fullshape(全角)、halfshape(半角)为字符串型,i为整数型
fullshape = ",。?“”‘’!:;"
halfshape = ",.?""''!:;"
For i = 1 To 10 '循环10次
With Selection.Find
.Text = Mid(fullshape, i, 1) 'mid函数:返回文本字符串中从指定位置开始的特定数目的字符,每次取一个标点符号
.Replacement.Text = Mid(halfshape, i, 1) '将用于替换的相应位置的半角标点符号
.Format = False '保留替换前的字符格式
.Execute Replace:=wdReplaceAll '用半角标点替换全角标点
End With
Next i
End Sub
第三,半角标点符号批量转换为全角标点符号
操作方法如下:
1.在word中,按ALT+F11组合键,打开VBE编辑器,单击插入——模块,在右边的代码编辑窗口复制下面的代码,并关闭VBE。
2.回到word,按ALT+F8键,打开“宏”对话框,选中“半角标点符号转换为全角标点符号”宏,单击“运行”命令,即可一次性将所有的半角标点符号转换为全角标点符号。
Sub 半角标点符号转换为全角标点符号()
'中英互译文档中将中文段落中的英文标点符号替换为中文标点符号
Dim i As Paragraph, ChineseInterpunction() As Variant, EnglishInterpunction() As Variant
Dim MyRange As Range, N As Byte
'定义一个中文标点的数组对象
ChineseInterpunction = Array("。", ",", ";", ":", "?", "!", "……", "—", "~", "〔", "〕", "《", "》", "‘", "’", "“", "”")
'定义一个英文标点的数组对象
EnglishInterpunction = Array(".", ",", ";", ":", "?", "!", "…", "-", "~", "(", ")", "<", ">", "'", "'", """", """")
On Error Resume Next
Application.ScreenUpdating = False '关闭屏幕更新
For Each i In ThisDocument.Paragraphs '遍历文档每个段落
If Asc(i.Range) < 0 Then '如果段落首个字符为汉字(汉字字符的ASC<0)
'定义一个RANGE对象
For N = 0 To 13 '进行14次循环
Set MyRange = i.Range '定义一个RANGE对象
With MyRange.Find '查找
.ClearFormatting '清除查找格式
'查找相应的英文标点,替换为对应的中文标点
.Execute findtext:=EnglishInterpunction(N), replacewith:=ChineseInterpunction(N), Replace:=wdReplaceAll
End With
Next
End If
Next
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting '清除查找格式
.Text = """" '查找"
'如果查找成功并且在中文段落中,分别将其替换为“/”
While .Execute
If Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "“"
If .Execute And Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "”"
Wend
End With
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting '清除查找格式
.Text = "'" '查找'
While .Execute
'如果查找成功并且在中文段落中,分别将其替换为‘/’
If Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "‘"
If .Execute And Asc(Selection.Paragraphs(1).Range) < 0 Then Selection.Text = "’"
Wend
End With
'恢复屏幕更新
Application.ScreenUpdating = True
End Sub


猜你喜欢
- 我们从网上下载东西到本地的话,都会有一个保存的路径,但是系统默认的保存路径一般都是系统盘,我们可以尝试将路径更改至其它位置,但是有的用户无法
- Win10的微软账户登陆密码可以设置三种形式,一种是普通的密码,一种是图形密码,还有一种就是PIN码。使用PIN码是相对方便的一种方法,如果
- 有很多伙伴经常使用Excel录入数据,希望通过技巧来节省他们的时间,提高工作效率,今天就教你一个录入数据偷懒的小技巧:excel中输入1显示
- 联想小新Pro16是联想旗下一款十分出色的笔记本电脑,该笔记本电脑不仅屏幕综合素质较好,而且还可以全面无死角强悍散热,如果当我们要重装这台笔
- 如何更换Win10系统?如果我们的电脑在使用中,老是会莫名其妙出现一些系统运行卡顿、蓝屏等情况时,那么不妨给电脑重新换个系统吧,本期教程小编
- 苹果今天提醒开发者,将从iOS 14.5,iPadOS 14.5和tvOS 14.5发布后,开始执行IDFA的新政策。什么新政呢?2020年
- A列的所有数据就变成如图中的样式; ,光标变成黑色粗的向下的箭头; 然后,光标点下, excel工作表的数据后面批量百分号怎么弄的 工具/原
- 电脑开机进不了Windows系统怎么办?导致出现这一情况的原因有很多,不同原因造成的处理方法也不同,下面就来看看小编为大家带来的电脑开机进不
- 由于不少设备都默认设置了20%的上传速度,文件上传太慢便成了困扰诸多用户的难题。那么,Win10 1909上传速度慢该怎么办呢?有类似困扰的
- nwiz.exe是NVidia的Nview特性相关程序。该程序用于用户对其特性进行配置,将桌面扩展到多台显示器上最近小编的电脑中突然出现了一
- 在一般的Excel输入过程中,数字输入的很多都是设置成文本格式。如果需要用到Excel的运算和函数等功能,那么文本格式显然是不利的。以下是小
- 和许多直播软件一样,网易旗下的CC直播也为用户准备了大量的热键,以便用户在使用这款软件的过程中快速进行一些调整!另外,用户还可自动调整这些热
- 用户一般会在自己的空闲时间来使用音乐软件来听歌,起到舒缓身心压力的作用,随着现在的音乐软件越来越多,用户也多了一些选择,其中的网易云音乐是很
- 最近有很多用户在购买固态硬盘以后都会使用软件来进行一些测试,而比较常用的软件无非就是crystaldiskmark和asssd这两款,因此就
- Word转换器的解决方法设置此注册表项值之后,任何应用程序都可以加载 WordPad-to-Word 6.0 和 WordPad-to-Wi
- 本地搜索大家都用过,如果用户需要在短时间内搜索大量文件,仅仅靠本地搜索需要花很长时间,而我们借以Everything软件,就可以快速精确的搜
- 分享一个使用PPT2016封面页案例教程,这个案例主要用到了PPT的形状运算功能,PPT的渐变填充。还有就是形状的对齐。我们先看一下案例的结
- 微软重新发布了针对Windows 7和8.1的Windows 10升级补丁,帮助使用旧版系统的用户平滑升级到最新的版本也就是Windows1
- wps如何绘制一个直角尺样式的图形1、打开WPS表格这款软件,进入WPS表格的操作界面,如图所示: 2、在该界面内找到插入选项3、
- win11cpu占用率怎么看?在使用电脑的时候,经常需要查询一些内容来对自己电脑加深了解,有小伙伴想知道win11cpu占用率怎么看?下面小