乐于分享
好东西不私藏

分享两个写论文的Word宏代码

分享两个写论文的Word宏代码

我最近在写毕业论文,受到老师启发,我近来喜欢直接用宏代码做文章格式的调整,下面分享两个有使用价值的:
第一个:我们在写文章的时候,有些时候“ ”(上引号、下引号)会是以新罗马的字体输入,而一般来说是要用宋体的,那么可以用到这一串
————————————————————————————
Sub ChangeTimesNewRomanQuotesToSimSun()
Dim rng As Range
Dim i As Long
Dim quoteChars As Variant
Dim char As String
Dim targetFont As String
Dim newFont As String
‘定义需要处理的引号字符(弯引号)
‘左双引号“(U+201C)右双引号”(U+201D)
‘左单引号‘(U+2018)右单引号’(U+2019)
quoteChars = Array(ChrW(8220), ChrW(8221), ChrW(8216), ChrW(8217))
targetFont = “Times New Roman”‘原字体
newFont = “宋体”‘目标字体(系统通常识别”宋体”)
‘取消屏幕更新,加快运行速度
Application.ScreenUpdating = False
For i = LBound(quoteChars) To UBound(quoteChars)
char = quoteChars(i)
Set rng = ActiveDocument.Range
‘在整篇文档中查找该字符
With rng.Find
.ClearFormatting
.Text = char
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.Format = False
Do While .Execute
‘找到字符后,检查字体是否为Times New Roman
If rng.Font.Name = targetFont Then
‘改为宋体,同时保留原有加粗、倾斜、字号等属性
rng.Font.Name = newFont
End If
‘继续查找下一个(光标移到当前找到范围之后)
rng.Collapse Direction:=wdCollapseEnd
Loop
End With
Next i
Application.ScreenUpdating = True
MsgBox “处理完成!所有Times New Roman字体的上/下引号已改为宋体。”, vbInformation
End Sub
——————————————————————————
第二个是,在做交叉引用的时候,往往遇到要一个一个把交叉引用调成上标,光光一个文章,至少要30份参考文献,标着标着都要把眼睛标瞎,那么可以用这个:
———————————————————————————
Sub SetCrossRefSuperscript_Fix()
Dim fld As Field
For Each fld In ActiveDocument.Fields
If fld.Type = wdFieldRef Then
‘ 选中该域的结果(不包含域代码)
fld.Result.Select
‘ 只把当前选中的内容设为上标
Selection.Font.Superscript = True
End If
Next fld
End Sub
————————————————————————————
以上两个代码我使用地非常顺利!