word2003为何稿纸设置为中文模式允许标点溢出格外,如图:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word2003为何稿纸设置为中文模式允许标点溢出格外,如图:相关的知识,希望对你有一定的参考价值。
结果标点没有溢出边界,根据设置,下图倒数第二三行的句号、引号,根据设置应该在倒数第三行格外才对。
我感到是这样的,那一行有两个标点符号,按照溢出要求,只能溢出句号,而引号必须在下行行首,又不符合标点规则,因此,自动把文字同标点符号同时下移了。你把引号去掉看看,是不是会溢出。 参考技术A 这是文章格式要求,意思就是每行的第一格不可以带有标点符号word中利用宏替换标点标点全角与半角
Alt+F11,然后插入-模块:
复制下面代码到编辑窗口:
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
然后Alt+F8,选择刚刚添加的宏,并运行:
---分割线---
还有另一段代码,简洁一些:
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
以上是关于word2003为何稿纸设置为中文模式允许标点溢出格外,如图:的主要内容,如果未能解决你的问题,请参考以下文章
设置了word-break:break-all,末尾有中文标点会提前换行的问题