一些常用的WORD-VBA代码

  • 格式:docx
  • 大小:16.32 KB
  • 文档页数:6

这里给大家提供一些比较常用的 WORD VB代码,可以提高大家的办公效率,如果不知

道怎么使用这些代码,请自行上网查询 WORD口何运行VBA

1、删除空行

Sub 删除空行 ()

Dim I As Paragraph, n As Integer

Application.ScreenUpdating = False

For Each I In ActiveDocument.Paragraphs

If Len(Trim(I.Range)) = 1 Then

1. Range.Delete

n = n + 1

End If

Next

MsgBox " 共删除空白段落 " & n & " 个"

Application.ScreenUpdating = True

End Sub

2、 奇偶页打印

Sub 奇偶页打印 ()

Dim x, j, i As Integer

On Error Resume Next

x = ExecuteExcel4Macro("Get.Document(50)")

For i = 1 To Int(x / 2) + 1

ActiveWindow.SelectedSheets.PrintOut From:=2 * i - 1, To:=2 * i - 1

Next i

If x = 1 Then

MsgBox " 无偶数页 "

Else

MsgBox " 请将打印出的纸张反向装入纸槽中 ", vbOKOnly, "

For j = 1 To Int(x / 2) + 1

ActiveWindow.SelectedSheets.PrintOut From:=2 * j, To:=2 * j Next j

End If

End Sub打印另一面 "

3、中英文标点互换

Sub 中英文标点互换 ()

Dim ChineseInterpunction() As Variant, EnglishInterpunction() As Variant

Dim myArray1() As Variant, myArray2() As Variant, strFind As String, strRep As String

Dim msgResult As VbMsgBoxResult, N As Byte

'定义一个中文标点的数组对象

", ")", "《", "》")

'定义一个英文标点的数组对象

'注意这里的英文 ,转换为了中文、 ,如果希望将 ,转换为中文,请自行修改! ' 提示用户交互的

MSGBOX 对话框

msgResult = MsgBox(" 您想中英标点互换吗 ?按 Y 将中文标点转为英文标点 ,按 N 将英文标 点转为中文标点 !", vbYesNoCancel)

Select Case msgResult

Case vbCancel

Exit Sub ' 如果用户选择了取消按钮 ,则退出程序运行

Case vbYes '如果用户选择了 YES,则将中文标点转换为英文标点

myArray1 = ChineseInterpunction

myArray2 = EnglishInterpunction strFind = "ChineseInterpunction = Array(" II II 。 ....... ;"":""? " " !""……""——""〜” ”

U 5? 5* 5* 5*5 J J J

EnglishInterpunction = Array("," II II ... ":""?" "!""…""_""〜""("")""<"">")

J J J J ・,・,・, J J 5 \ 5 / 5 J / II

(*) strRep = """\1"""

Case vbNo ' 如果用户选择了 NO, 则将英文标点转换为中文标点

myArray1 = EnglishInterpunction

myArray2 = ChineseInterpunction

strRep = " “ \1 ” "

End Select

Application.ScreenUpdating = False ' 关闭屏幕更新

For N = 0 To UBound(ChineseInterpunction) ' 从数组的下标到上标间作一个循环

With ActiveDocument.Content.Find

.ClearFormatting ' 不限定查找格式

.MatchWildcards = False ' 不使用通配符

' 查找相应的英文标点 ,替换为对应的中文标点

.Execute findtext:=myArray1(N), replacewith:=myArray2(N), Replace:=wdReplaceAll

End With

Next

With ActiveDocument.Content.Find

.ClearFormatting ' 不限定查找格式

.MatchWildcards = True ' 使用通配符

.Execute findtext:=strFind, replacewith:=strRep, Replace:=wdReplaceAll

End WithstrFind = linn (*) nnn Application.ScreenUpdating = True

End Sub

4 、任意页插入页码

Sub 任意页插入页码 ()

Dim p As Integer

On Error Resume Next

p = InputBox(" 请输入起始编排页码的页次 ")

With Selection

.GoTo What:=wdGoToPage, Count:=p

.InsertBreak Type:=wdSectionBreakContinuous .Sections(1).Footers(1).LinkToPrevious = False

With .Sections(1).Footers(1).PageNumbers

.RestartNumberingAtSection = True

.StartingNumber = 1

.Add PageNumberAlignment:=wdAlignPageNumberCenter, FirstPage:=True End With

End With

End Sub恢复屏幕更新

5、实现图形的精确旋转

Sub 图形旋转 ()

Dim blnIsInlineShape As Boolean

If Selection.Type = wdSelectionInlineShape Then

blnIsInlineShape = True

Selection.InlineShapes(1).ConvertToShape

End If

Dim intTurn As Integer

intTurn = InputBox(" 请输入图形要旋转的角度值 " & vbCrLf & " 正数表示顺时针,负数表 示逆时针。

", "图形旋转 ", 30)

Selection.ShapeRange.IncrementRotation intTurn

End Sub

注释:上述代码中, 首先是将嵌入式的图形转换为可以自由浮动的图形。 返回 Wo rd 窗口 之后,选中文档中需要旋转的某幅图形, 按下 Alt+F8 组合键,选中列表框中的“图形旋转” 宏,单击“运行”按钮弹出一个对话框, 默认的旋转角度是 30 °,例如设置为“ 33 ”很,快 就可以完成旋转操作。

欢迎下载,谢谢观看!资料仅供参考学习