Word宏代码集锦

Word宏代码集锦


2024年4月15日发(作者:)

Word宏代码集锦

Word宏代码集锦 ............................................................................................................................. 1

一、 修改word格式: ..................................................................................................... 1

1、' 智能清除选区软回车(换行符) ......................................................................... 1

2、' 清除选区多余空段 ................................................................................................. 1

3、' 合并选区中“,”结束的多余分段 ....................................................................... 3

4、' 清除选区单字节空格 ............................................................................................. 3

5、' 清除选区单字节空格 ............................................................................................. 4

6、' 清除选区1字空格 ................................................................................................. 4

7、' 清除选区段首2字空格 ......................................................................................... 4

8、' 清除选区 5

9、' 增加选区空格 ......................................................................................................... 5

10、' 选区段首缩进0字 ............................................................................................... 5

11、' 选区段首缩进:2字 .............................................................................................. 6

12、' 选区段首缩进转空格—已完美 ........................................................................... 6

13、' 选区段后间距1行 ............................................................................................... 7

14、' 选区段后间距1行 ............................................................................................... 7

15、' 选区段后间距1行 ............................................................................................... 7

16、' 清除选区图片 ....................................................................................................... 7

17、' 选区硬回车转软回车 ........................................................................................... 8

18、' 清除选区软回车 ................................................................................................... 8

19' 合并选区段落 ........................................................................................................... 8

20、' 选区空格转硬回车 ............................................................................................... 9

21、' 选区标点半角转全角 ........................................................................................... 9

22、' 选区标点全角转半角 ......................................................................................... 11

23、' 选区中文句号转半角 ......................................................................................... 12

24、’把文档第一段设置为标题1的格式 ................................................................. 12

25、选中的文本横向居中 ............................................................................................. 12

26、缩小字距 ................................................................................................................. 13

27、增大字距 ................................................................................................................. 13

28、缩小行距 ................................................................................................................. 14

29、增大行距 ................................................................................................................. 14

30、等高变宽 ................................................................................................................. 15

31、等高变窄 ................................................................................................................. 15

32、字表间距 ................................................................................................................. 15

33、纵向16开 ............................................................................................................... 16

34、插入页码 ................................................................................................................. 16

35、小写金额转大写金额 ............................................................................................. 17

二、 其它 ......................................................................................................................... 22

1.调整图片大小 ............................................................................................................. 22

2.转字体......................................................................................................................... 23

3.转文件格式 ................................................................................................................. 25

4、文件加密 ................................................................................................................... 26

1

5、字符替换 ................................................................................................................... 27

6、替换引号 ................................................................................................................... 27

7、打印为PDF格式文件 ............................................................................................. 28

8、朗读文本 ................................................................................................................... 28

9. 文献标号上标化 ........................................................................................................ 29

10. 箭头上方加文字 ...................................................................................................... 29

11 添加参考文献格式一,参考文献在文档末尾以1. 2. 3. 格式排列 .......... 30

12. 添加参考文献格式二,参考文献在文档末尾以[1] [2] [3] 格式排列,修改自格

式一的代码 ..................................................................................................................... 30

13. 返回正文 .................................................................................................................. 31

14. 再次引用已有参考文献 .......................................................................................... 31

15. 查找被删参考文献遗留引用, .............................................................................. 32

16、统计修订的字数 ..................................................................................................... 32

17、快速提取脚注内容 ................................................................................................. 33

18、从任意页面编排页码 ............................................................................................. 33

19、批量实现缩放打印 ................................................................................................. 34

20、对文档内容进行顺序排列 ..................................................................................... 35

21、替换Word文档插图的超链接 ............................................................................. 35

22、为文档的每页添加固定内容 ................................................................................. 36

23、批量实现图片的等比例缩 ..................................................................................... 36

2

一、 修改word格式:

1、' 智能清除选区软回车(换行符)

Sub 智能清除选区软回车()

With

.Text = "?^l"

. = "^&^p"

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = False

.MatchAllWordForms = False

.MatchSoundsLike = False

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

With

.Text = "^1^l"

. = "^&^p"

End With

e Replace:=wdReplaceAll

With

.Text = "^l"

. = ""

End With

e Replace:=wdReplaceAll

End Sub

2、' 清除选区多余空段

Sub 清除选区多余空段()

With

.Text = "^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

1

With

.Text = "^p^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p "

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

2

.Text = "^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p^p"

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

3、' 合并选区中“,”结束的多余分段

Sub 合并选区多余分段()

With

.Text = ",^p"

. = ","

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "、^p"

. = "、"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

4、' 清除选区单字节空格

Sub 清除选区单字节空格()

With

.Text = " "

. = ""

3

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

5、' 清除选区单字节空格

Sub 清除选区2单字节空格()

With

.Text = " "

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

6、' 清除选区1字空格

Sub 清除选区1字空格()

With

.Text = " "

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

7、' 清除选区段首2字空格

Sub 清除选区段首2字空格()

With

.Text = " "

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

4

8、' 清除选区Tab

Sub 清除选区Tab()

With

.Text = vbTab

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

9、' 增加选区空格

Sub 增加选区空格()

With

.Text = " "

. = " "

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

10、' 选区段首缩进0字

Sub 选区段首无缩进()

With

.Text = " "

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With aphFormat

.LeftIndent = CentimetersToPoints(0)

.RightIndent = CentimetersToPoints(0)

.FirstLineIndent = CentimetersToPoints(0)

.CharacterUnitLeftIndent = 0

.CharacterUnitRightIndent = 0

5

'左缩进0字符

'右缩进0字符

'首行缩进点0公分

'左缩进单位0字符

'右缩进单位0字符

.CharacterUnitFirstLineIndent = 0

End With

With aphFormat

.LeftIndent = CentimetersToPoints(0) '左缩进1字符

.RightIndent = CentimetersToPoints(0) '右缩进2字符

.FirstLineIndent = CentimetersToPoints(0) '首行缩进点0.35公分

.CharacterUnitLeftIndent = 0 '左缩进单位0字符

.CharacterUnitRightIndent = 0 '右缩进单位0字符

.CharacterUnitFirstLineIndent = 0

End With

End Sub

11、' 选区段首缩进:2字

Sub 选区段首缩进2字()

With aphFormat

.LeftIndent = CentimetersToPoints(0) '左缩进1字符

.RightIndent = CentimetersToPoints(0) '右缩进2字符

.FirstLineIndent = CentimetersToPoints(0.35) '首行缩进点单位公分

.CharacterUnitLeftIndent = 0 '左缩进单位0字符

.CharacterUnitRightIndent = 0 '右缩进单位0字符

.CharacterUnitFirstLineIndent = 2

End With

End Sub

12、' 选区段首缩进转空格—已完美

Sub 选区段首缩进转空格()

ParagraphBefore

Call 选区段首无缩进

With

.Text = "^p"

. = "^p "

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

6

With

.Text = " ^p"

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

13、' 选区段后间距1行

Sub 选区段后间距1行()

ineIndent = CentimetersToPoints(0)

itAfter = 1

End Sub

14、' 选区段后间距1行

Sub 选区段前段后间距半行()

ineIndent = CentimetersToPoints(0)

itBefore = 0.5

itAfter = 0.5

End Sub

15、' 选区段后间距1行

Sub 选区段前段后无间距()

ineIndent = CentimetersToPoints(0)

itBefore = 0

itAfter = 0

End Sub

16、' 清除选区图片

7

Sub 清除选区图片()

With

.Text = "^1"

. = ""

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

End Sub

17、' 选区硬回车转软回车

Sub 选区硬回车转软回车()

With

.Text = "^p"

. = "^l"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

18、' 清除选区软回车

Sub 清除选区软回车()

' With

.Text = "^l"

. = ""

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

End Sub

19' 合并选区段落

Sub 合并选区段落()

With

.Text = " "

8

. = ""

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^p"

. = "^l"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "^l"

. = ""

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

'添加段落符号

End Sub

20、' 选区空格转硬回车

Sub 选区空格转硬回车()

With

.Text = " "

. = "^p"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

21、' 选区标点半角转全角

Sub 选区标点半角转全角()

With

.Text = ","

. = ","

.MatchWildcards = False

9

End With

e Replace:=wdReplaceAll

With

.Text = ";"

. = ";"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = ":"

. = ":"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "?"

. = "?"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "!"

. = "!"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "......"

. = "……"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "."

. = "。"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

10

End Sub

22、' 选区标点全角转半角

Sub 选区标点全角转半角()

With

.Text = ","

. = ","

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = ";"

. = ";"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = ":"

. = ":"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "?"

. = "?"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "!"

. = "!"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "……"

11

. = "......"

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

With

.Text = "。"

. = "."

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

23、' 选区中文句号转半角

Sub 选区中文句号转半角()

With

.Text = "。"

. = "."

.MatchWildcards = False

End With

e Replace:=wdReplaceAll

End Sub

24、’把文档第一段设置为标题1的格式

Sub 标题1()

aphs(1).Style = ("标题 1")

ent = wdAlignParagraphCenter

End Sub

25、选中的文本横向居中

Sub 横向居中()

With

.Text = " "

. = ""

.MatchWildcards = False

12

End With

e Replace:=wdReplaceAll

With aphFormat

.LeftIndent = CentimetersToPoints(0) '左缩进0字符

.RightIndent = CentimetersToPoints(0) '右缩进0字符

.FirstLineIndent = CentimetersToPoints(0) '首行缩进点0公分

.CharacterUnitLeftIndent = 0 '左缩进单位0字符

.CharacterUnitRightIndent = 0 '右缩进单位0字符

.CharacterUnitFirstLineIndent = 0

End With

With aphFormat

.LeftIndent = CentimetersToPoints(0) '左缩进1字符

.RightIndent = CentimetersToPoints(0) '右缩进2字符

.FirstLineIndent = CentimetersToPoints(0) '首行缩进点0.35公分

.CharacterUnitLeftIndent = 0 '左缩进单位0字符

.CharacterUnitRightIndent = 0 '右缩进单位0字符

.CharacterUnitFirstLineIndent = 0

End With

ent = wdAlignParagraphCenter

End Sub

26、缩小字距

Sub 缩小字距()

Dim b

On Error Resume Next

ibility(wdSpacingInWholePoints) = False '不按点阵缩放

字距

If g = 9999999 Then '当字距不等时,此值为9999999

For b = 1 To '得到所选字符总数

ters(b).g = ters(b).g - 0.1 '

为每个字符更改字距

Next b

Else

g = g - 0.1

End If

End Sub

27、增大字距

13

Sub 增大字距()

On Error Resume Next

ibility(wdSpacingInWholePoints) = False '不按点阵缩放

字距

Dim b

If g = 9999999 Then '当字距不等时,此值为9999999

For b = 1 To '得到所选字符总数

ters(b).g = ters(b).g + 0.1

'为每个字符更改字距

Next b

Else

g = g + 0.1

End If

End Sub

28、缩小行距

Sub 缩小行距()

Dim b

On Error Resume Next

StatusBar = "老刘郑重提示: 该命令会取消行自动对齐到行网格!"

With aphFormat

.AutoAdjustRightIndent = False '不自动调整右缩进

.DisableLineHeightGrid = True '不自动对齐行网格

End With

If acing = 9999999 Then

For b = 1 To

aphs(b).LineSpacing = aphs(b).LineSpacing *

0.95

Next b

Else

acing = acing *

0.95

End If

End Sub

29、增大行距

Sub 增大行距()

Dim b

On Error Resume Next

StatusBar = "老刘郑重提示: 该命令会取消行自动对齐到行网格!"

With aphFormat

.AutoAdjustRightIndent = False '不自动调整右缩进

14

.DisableLineHeightGrid = True '不自动对齐行网格

End With

If acing = 9999999 Then '当段落间距不等时,此值为

9999999

For b = 1 To '得到所选段落总数

aphs(b).LineSpacing = aphs(b).LineSpacing *

1.05

Next b

Else

acing = acing *

1.05

End If

End Sub

30、等高变宽

Sub 等高变宽()

On Error Resume Next

g = g + 1

End Sub

31、等高变窄

Sub 等高变窄()

On Error Resume Next

g = g - 1

End Sub

32、字表间距

Sub 字表间距()

On Error Resume Next

ibility(wdAlignTablesRowByRow) = False

(1).Select

With s(wdBorderTop)

.LineStyle = wdLineStyleSingle

.LineWidth = wdLineWidth150pt

.Color = tBorderColor

End With

With s(wdBorderLeft)

.LineStyle = wdLineStyleSingle

.LineWidth = wdLineWidth150pt

.Color = tBorderColor

End With

15

With s(wdBorderBottom)

.LineStyle = wdLineStyleSingle

.LineWidth = wdLineWidth150pt

.Color = tBorderColor

End With

With s(wdBorderRight)

.LineStyle = wdLineStyleSingle

.LineWidth = wdLineWidth150pt

.Color = tBorderColor

End With

On Error GoTo a:

(1).ent = wdAlignRowCenter

alAlignment = wdCellAlignVerticalCenter

etweenColumns = 0

(1).AllowAutoFit = False

a:

If Err = 4605 Then

MsgBox "当前位置不在表格中,请重新定义。", vbInformation, "刘厚彬现在轻轻地告

诉你"

End If

End Sub

33、纵向16开

Sub 纵向16开()

' With (Start:=, End:=ActiveDocument. _

).PageSetup '插入点之后

'With tup '整篇文档

With tup '本节

.Orientation = wdOrientPortrait '纵向

.TopMargin = MillimetersToPoints(24)

.BottomMargin = MillimetersToPoints(25)

.LeftMargin = MillimetersToPoints(28)

.RightMargin = MillimetersToPoints(25)

.FooterDistance = MillimetersToPoints(21)

.PageWidth = MillimetersToPoints(196)

.PageHeight = MillimetersToPoints(270)

.FirstPageTray = wdPrinterDefaultBin

.OtherPagesTray = wdPrinterDefaultBin

End With

End Sub

34、插入页码

16

Sub 插入页码()

Dim fstpg As Byte

Dim mydialog As Dialog

Dim a As String

On Error Resume Next

fstpg = 1

eldCodes = False '隐藏窗口域代码

Set mydialog = Dialogs(wdDialogInsertPageNumbers)

If y = -1 Then '-2关闭;-1确定;0取消;1第一个按钮,

2第二个按钮,以此类推。

If age = False Then '判断首页是否打印页码

age = True

fstpg = False

End If

e

ew = wdSeekCurrentPageFooter

ge Start:=0, End:=4 '选定前3个字符文本

If $(, 1, 1) <> "—" Then

Unit:=wdLine

xt text:=" —"

ft Unit:=wdCharacter, Count:=5

xt text:="— "

terUnitRightIndent = 0.75

terUnitFirstLineIndent = 1.19

End If

If fstpg = False Then

age = False

e '首页不显示页码

End If

ew = wdSeekMainDocument

End If

End Sub

35、小写金额转大写金额

Sub 大写金额()

Dim BigNum, snum, i, mydata As DataObject

On Error GoTo e

Set mydata = New DataObject

BigNum = ""

snum =

If IsNumeric(snum) = False Then

mClipboard '从剪切板取值

17

'切换到页脚

snum = t(1)

End If

snum = ((Int(Round(snum, 2) * 100)))

If snum < 0 Then snum = -snum: BigNum = "负"

If snum = 0 Then

BigNum = "零元整"

Else

Const cNum = "零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分"

Const cCha = "零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万

元亿零整整"

For i = 1 To Len(snum) '逐位转换

BigNum = BigNum + (cNum, ((snum, i, 1)) + 1, 1) +

(cNum, 26 - Len(snum) + i, 1)

Next i

BigNum = Replace(BigNum, "零亿", "亿零")

BigNum = Replace(BigNum, "零万", "万零")

BigNum = Replace(BigNum, "零元", "元零")

For i = 0 To 11 '去掉多余的零

BigNum = Replace(BigNum, (cCha, i * 2 + 1, 2), (cCha, i + 26, 1))

Next i

End If

ght

xt text:=BigNum

End

e:

MsgBox "你输入数字错误或太大!请重新输入。", vbExclamation + vbOKOnly, "提示"

End Sub

36、’去掉空白行

Sub 去掉空白行()

y Unit:=wdStory

ormatting

ormatting

With

.Text = "[^11^13]{2,}"

. = "^13"

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = False

.MatchAllWordForms = False

18

.MatchSoundsLike = False

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

End Sub

37、查找替换

Sub 查找替换()

With

.ClearFormatting '清除格式设置

. = "新宋体" '查找的字体格式

With .Replacement '替换条件

.ClearFormatting '清除格式设置

. = "黑体" '替换成黑体

End With

.Execute findtext:="", ReplaceWith:="", Format:=True, _

Replace:=wdReplaceAll '是格式替换,全部替换

End With

End Sub

38、总结:word自动化排版宏

Sub 格式设置()

'

' 格式设置 Macro

Updating = False

'更改所有硬回车为软回车

ormatting

ormatting

With

.Text = "^l"

. = "^p"

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

19

e Replace:=wdReplaceAll

'去除所有空行

Dim i As Paragraph, n As Integer

Updating = False

For Each i In aphs

If Len() = 1 Then

n = n + 1

End If

Next

Updating = True

'去除半角空格

ormatting

ormatting

With

.Text = " "

. = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

e Replace:=wdReplaceAll

'去除全角空格

ormatting

ormatting

With

.Text = " "

. = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

20

e Replace:=wdReplaceAll

'替换非标准引号为标准引号

ormatting

ormatting

With

.Text = """(*)"""

. = ChrW(8220) & "1" & ChrW(8221)

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = False

.MatchAllWordForms = False

.MatchSoundsLike = False

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

'字母数字符号全角转半角 Macro

Dim qjsz, bjsz As String, iii As Integer '定义qjsz(全角数字)、bjsz(半角数字)为字符串型,iii

为整数型

qjsz = "0123456789abcdefghijklmnopqrstuvw

xyzABCDEFGHIJKLMNOPQRSTUVWXYZ,./<>?;’:[]{}|=-+_)(

bjsz = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY

Z,。/《》?;':【】{}\|=-+_)(

tory

For iii = 1 To 95 '循环10次

With

.Text = Mid(qjsz, iii, 1) 'mid函数:返回文本字符串中从指定位置开始的特定数目的字

符,每次取一个数字

. = Mid(bjsz, iii, 1) '将用于替换的相应位置的半角数字

.Format = False '保留替换前的字符格式

.MatchWildcards = False

.Execute Replace:=wdReplaceAll '用半角符号替换全角符号

End With

Next iii

'修改小数点错误

ormatting

ormatting

With

.Text = "([0-9])。([0-9])"

. = "1.2"

.Forward = True

.Wrap = wdFindContinue

21

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = False

.MatchAllWordForms = False

.MatchSoundsLike = False

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

'设置字号

tory '全选

ormatting '清除全文格式

= 14 '设置字号为14号

'设置行距

acingRule = wdLineSpaceExactly

acing = 25

ent = wdAlignParagraphJustify '设置文本为两端对齐

terUnitFirstLineIndent = 2 '设置段首缩进2字符

y Unit:=wdStory '移至文首

Unit:=wdLine, Extend:=wdExtend '选中首行

ormatting '清除首行格式

ent = wdAlignParagraphCenter '设置首行居中对齐

itBefore = 1 '设置首行段前间距1行

itAfter = 1 '设置首行段后间距1行

= "微软雅黑" '设置首行字体为“微软雅黑”

= 18 '设置首行字号为18号

= wdToggle '设置首行字形为加粗

Updating = True

End Sub

二、 其它

1.调整图片大小

Sub setpicsize() '设置图片大小

Dim n '图片个数

On Error Resume Next '忽略错误

For n = 1 To 'InlineShapes

类型图片

22

Shapes(n).Height = 400 '设置图片高度为

400px

Shapes(n).Width = 300 '设置图片宽度

300px

Next n

For n = 1 To 'Shapes类型图片

(n).Height = 400 '设置图片高度为 400px

(n).Width = 300 '设置图片宽度 300px

Next n

End Sub

2.转字体

Sub 批量设置小5号字体() '此代码为指定文件夹中所有选取的WORD

文件的进行格式设置

Dim MyDialog As FileDialog, vrtSelectedItem As Variant, Doc As

Document

' On Error Resume Next '忽略错误

'定义一个文件夹选取对话框

Set MyDialog =

alog(msoFileDialogFilePicker)

With MyDialog

.Title = "请选择要处理的文档(可多选)"

. '清除所有文件筛选器中的项目

23

. "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目

为所有WORD文件

.AllowMultiSelect = True '允许多项选择

If .Show = -1 Then '确定

Updating = False

For Each vrtSelectedItem In .SelectedItems '在所有选取项目中

循环

Set Doc = (FileName:=vrtSelectedItem,

Visible:=False)

With Doc

With .Content

With .Font

' .NameFarEast = "宋体" '中文字体,已禁用

' .NameAscii = "Times New Roman" '英文字体,已禁用

.Size = 9

End With

End With

.Close True

End With

Next

Updating = True

24

End If

End With

MsgBox "批量设置完毕!", vbInformation

End Sub

3.转文件格式

Sub Macro1()

' Macro1 Macro

' 宏在 01-10-31录制

'

Dim name As String '文件名

name = "01"

ChangeFileOpenDirectory "E:VB_SOUCElib"

For i = 1 To 2124 '文件数2124

filename:=name & ".txt",

ConfirmConversions:=False, ReadOnly:= _

False, AddToRecentFiles:=False,

PasswordDocument:="", PasswordTemplate:= _

"", Revert:=False, WritePasswordDocument:="",

WritePasswordTemplate:="", _

Format:=wdOpenFormatAuto

25

filename:=name & ".txt",

FileFormat:= _

wdFormatTextLineBreaks,

Password:="", _

AddToRecentFiles:=True,

LockComments:=False,

WritePassword:="",

ReadOnlyRecommended:=False, _

EmbedTrueTypeFonts:=False,

SaveNativePictureFormat:=False, SaveFormsData _

:=False, SaveAsAOCELetter:=False

name = name + 1

If name < 10 Then name = "0" & name

Next i

End Sub

4、文件加密

sub mima()

with activedocument

.password="123"

.writepassword="456"

26

end with

end sub

‘要注意的方面:第三行是打开权限、第四行是修改权限。

5、字符替换

Sub 字符替换() '宏名称,可修改为其他字符

With '在当前文档中进行查找

.Text = "其它" '被替换的字符

. = "其他" '替换的字符

.Execute Replace:=wdReplaceAll, Forward:=True '替换全部

End With

End Sub

6、替换引号

Sub 替换引号()

Dim Countx As Integer, i As Integer, Sh As Byte '声明变量

'以下代码统计出文中的引号数目(包括""“”)

Countx = 0

On Error Resume Next

With

Do While .Execute(FindText:="""", Forward:=True, Format:=True) = True

Countx = Countx + 1

Loop

'以下代码判断引号是否配对出现

Sh = Countx Mod 2

If Sh <> 0 Then

MsgBox "引号不配对!"

Exit Sub '如果引号不配对,则退出宏

End If

End With

For i = 1 To Countx

Sh = i Mod 2 '求i值除以2的余数

If Sh <> 0 Then '如果余数不等于0(即为奇数),则将相应的引号替'换为“前z”

With

.Text = """"

. = "前z"

.Execute Replace:=wdReplaceOne, Forward:=True

27

End With

Else

With '反之则将相应的引号替换为“后z”

.Text = """"

. = "后z"

.Execute Replace:=wdReplaceOne, Forward:=True

End With

End If

Next '进行下一对引号的替换

With

'以下代码将所有的“前z”替换为左引号

.Text = "前z"

. = "“"

.Execute Replace:=wdReplaceAll, Forward:=True

'以下代码将所有的“后z”替换为右引号

.Text = "后z"

. = "”"

.Execute Replace:=wdReplaceAll, Forward:=True

End With

End Sub

7、打印为PDF格式文件

Sub 打印为PDF格式文件()

On Error GoTo c:

Dim a As Balloon

Dim b As String

b = ActivePrinter

rawingObjects = True '打印图形对象

ActivePrinter = "Acrobat PDFWriter"

ut

c:

ActivePrinter = b

End Sub

8、朗读文本

Sub 朗读文本()

On Error Resume Next

StatusBar = "老刘郑重提示: 执行该命令后文本如果未朗读完将不能进行其他操作!"

(ion)

End Sub

28

9. 文献标号上标化

Sub 文献标号上标化()

'

' 参考文献上标化 Macro

' 宏在 2006-11-3 由 ***** 创建

'

y Unit:=wdStory

ormatting

With

.Superscript = True

End With

With

.Text = "[[0-9,0-9,~~-- ]@]"

. = ""

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

ormatting

With

.Superscript = True

End With

With

.Text = "[[0-9,0-9,~~-- ]@]"

. = ""

.MatchWildcards = True

End With

e Replace:=wdReplaceAll

End Sub

10. 箭头上方加文字

Sub 箭头上方加文字()

'

' 箭头上方加文字 Macro

' 宏在 2008-4-16 由 ***** 创建

'

Range:=, Type:=wdFieldEmpty, _

PreserveFormatting:=False

ckspace

Unit:=wdCharacter, Count:=1

xt Text:="eq o(sdo2(──────────→),sup5(敲击Delete键

清除此段文字,改填所需文字,酌情增减箭头长度,最后同时按下shift和F9))"

ft Unit:=wdCharacter, Count:=2

29

ft Unit:=wdWord, Count:=25, Extend:=wdExtend ‘顾经宇的代码是26,

改成25更好

End Sub

11 添加参考文献格式一,参考文献在文档末尾以1. 2. 3. 格式

排列

Sub 添加参考文献格式一()

'

' 添加参考文献 Macro

' 宏在 2008-4-17 由 ***** 创建

'

= ("尾注引用")

xt Text:="[]"

ft Unit:=wdCharacter, Count:=1

With es

.StartingNumber = 1

.NumberStyle = wdNoteNumberStyleArabic

End With

Range:=, Reference:=""

ft Unit:=wdCharacter, Count:=1

ft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

= ("默认段落字体")

ght Unit:=wdCharacter, Count:=1

Unit:=wdCharacter, Count:=1

xt Text:=". "

End Sub

12. 添加参考文献格式二,参考文献在文档末尾以[1] [2] [3] 格式排

列,修改自格式一的代码

Sub 添加参考文献格式二()

'

' 添加参考文献 Macro

' 宏在 2008-4-17 由 ***** 创建

'

= ("尾注引用")

xt Text:="[]"

ft Unit:=wdCharacter, Count:=1

With es

.StartingNumber = 1

30

.NumberStyle = wdNoteNumberStyleArabic

End With

Range:=, Reference:=""

ft Unit:=wdCharacter, Count:=1

ft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

= ("默认段落字体")

ght Unit:=wdCharacter, Count:=1

Unit:=wdCharacter, Count:=1

xt Text:="] "

ft Unit:=wdCharacter + 2, Count:=1

xt Text:="["

End Sub

13. 返回正文

Sub 返回正文()

'返回正文 Macro

'宏在 2008-4-16 由 ***** 创建

'

If = wdPageView Or ActiveWindow. _

= wdOnlineView Or _

= wdPrintPreview Then

ew = wdSeekMainDocument

Else

(2).Close

End If

ght Unit:=wdCharacter, Count:=2

End Sub

14. 再次引用已有参考文献

Sub 引用编号()

'引用编号 Macro

'宏在 2008-4-16 由 ***** 创建

'

cript = wdToggle

xt Text:="[]"

ft Unit:=wdCharacter, Count:=1

With Dialogs(wdDialogInsertCrossReference)

.InsertAsHyperlink = True

.Show

End With

ght Unit:=wdCharacter, Count:=1

cript = wdToggle

31

End Sub

15. 查找被删参考文献遗留引用,

Sub 查找被删编号()

'要删除某个参考文献,应该在原始引用处删除引用,这样可以一并删除参考文献,而不是

在文档末尾文献列表处删除

tory

ormatting

With

.Text = "错误!未定义书签。"

End With

e

ft Unit:=wdCharacter, Count:=1

ght Unit:=wdCharacter, Count:=1, Extend:=wdExtend

End Sub

16、统计修订的字数

Sub test()

Dim Rev As Revision, c1 As Long, n1 As Integer, a As String

Dim Wd As Range, c2 As Long, n2 As Integer, b As String

For Each Rev In ons

If = wdRevisionInsert Then

For Each Wd In

c1 = c1 + IIf(Wd Like "[一-龥]*", , 1)

Next

n1 = n1 + 1

a = a & & vbTab

ElseIf = wdRevisionDelete Then

For Each Wd In

c2 = c2 + IIf(Wd Like "[一-龥]*", , 1)

Next

n2 = n2 + 1

b = b & & vbTab

End If

Next

MsgBox "增加内容" & n1 & "处共" & c1 & "字;删除内容" &

n2 & "处共" & c2 & "字。"

End Sub

32

17、快速提取脚注内容

Sub test()

Dim oFootNote As Footnote, myRange As Range

Dim BeforeName As String, BeforeSize As Single

On Error Resume Next

Updating = False

For Each oFootNote In tes

With oFootNote

Set myRange = (., .)

.

With myRange

.Text = "(JZ: )"

BeforeName = .

BeforeSize = .

ge .Start + 4, .Start + 4

.Paste

. = BeforeName

. = BeforeSize

End With

End With

Next

Updating = True

End Sub

18、从任意页面编排页码

Sub test()

myPath = "H:temp"

y Unit:=wdStory

Set myRange =

curpage = 0

Updating = False

Do

prepage = curpage

pagenum = pagenum + 1

Set myRange = xt(What:=wdGoToPage)

curpage =

endpage =

If curpage = prepage Then _

endpage =

(prepage, endpage).Copy

With

33

.

.SaveAs myPath & "Page" & pagenum & ".doc"

.Close

End With

If curpage = prepage Then Exit Do

Loop

Updating = True

End Sub

19、批量实现缩放打印

Sub test()

Updating = False

With arch

.LookIn = "h:Downloadstemp5"

.FileType = msoFileTypeWordDocuments

If .Execute > 0 Then

Fori =

FileName:=.FoundFiles(i)

utPrintZoomPaperWidth:=10433,

PrintZoomPaperHeight:=14742

False

Next i

End If

End With

Updating = True

34

End Sub

20、对文档内容进行顺序排列

Sub macro1()

Dim s() As String, temp As String, i As Long

VBAs = Split(t, Chr(13) & Chr(13))

For i = 0 To UBound(s) 2

temp = s(i)

s(i) = s(UBound(s) - i)

s(UBound(s) - i) = temp

Next

= Join(s, Chr(13) & Chr(13))

End Sub

21、替换Word文档插图的超链接

Sub text()

n = 0

For Eachs In

Anchor:=ange, _

Address:=""

n=n+1

35

Next

MsgBox "共替换" &n& "个图片!"

End Sub

22、为文档的每页添加固定内容

Sub test()

Dim m As Integer, n As Page

m = ation(wdNumberOfPagesInDocument)

y Unit:=wdStory

For o = 1 To m

With Selection

.TypeText Text:="机械制图国家标准"

.GoToNext what:=wdGoToPage

End With

Next

End Sub

23、批量实现图片的等比例缩

Sub test()

Dim Shp As Shape, InlineShp As InlineShape

Dim Bder As Border

With ActiveDocument

For Each Shp In .Shapes

pectRatio = msoTrue

= 4 * 28.35

Next

36

For Each InlineShp In .InlineShapes

pectRatio = msoTrue

= 4 * 28.35

For Each Bder In s

With Bder

.LineStyle = wdLineStyleSingle

.LineWidth = wdLineWidth050pt

.Color = wdColorAutomatic

End With

Next

Next

End With

End Sub

‘上述代码中的“LockAspectRatio = msoTrue”表示锁定纵横比,如果不需要锁定纵横比,

那么可以修改为“LockAspectRatio = msoFalse”。

24、提取域代码

Sub 提取域代码()

Dim myRange As Range, myCodes As String

Set myRange =

With myRange

If . = 0 Then

MsgBox "您所选的内容中没有域代码!", vbInformation

Exit Sub

Else

.

.eFieldCodes = True

.eHiddenText = True

myCodes = .Text

myCodes = e(myCodes, Chr(19), "{")

myCodes = e(myCodes, Chr(21), "}")

.SetRange .End, .End

.InsertAfter myCodes '"注意,""{}""是由Ctrl+F9组合键自动插入的域标志! " &

vbLf & "域代码:" & myCodes

. = "Tahoma"

. = 11

.Cut

End If

End With

End Sub

25、'完美显示图片表格的普通视图

Sub 完美显示图片表格的普通视图()

37

'此宏为雨雪霏霏特别奉献的小偏方,欢迎各位朋友测试。

'如果文档中的嵌入式图片、表格显示迟滞、错位,运行此宏,将在普通视图下完美显示它

们。

review

rintPreview

= wdNormalView

End Sub

'26、完美显示图片表格的页面视图

Sub 完美显示图片表格的页面视图()

'此宏为雨雪霏霏特别奉献的小偏方,欢迎各位朋友测试。

'如果文档中的各种图片、表格显示迟滞、错位,运行此宏,将在页面视图下完美显示它们。

review

rintPreview

= wdNormalView

= wdPrintView

End Sub

'27、彻底删除页眉页脚

Sub 彻底删除页眉页脚()

'此宏为雨雪霏霏试写。思路来自:

'①konggs版主于2005-7-26 20:38、2005-7-27 08:51发表的帖子,

'链接为/?tid=112178;

'②守柔版主于2005-7-27年发表于站内的文章《Word中鲜为人知的三招》,

'链接为/Article/?ArticleID=439。

'此宏不足处在于:

'①刪除页眉页脚后不能再恢复;

'②本地文档进行删除操作后不保存退出的话,会在下次启动Word时出现文档恢复窗格。

Dim w, y As String

Updating = False

Set w = ojectItems(2)

If = 2 Then

If = "" Then

38

= ""

hProject

hDocument

If Like "*.doc" Then

MsgBox "本文档页眉页脚已彻底清除,请及时保存。" & Chr(13) & _

"若退出本地文档时未保存,重新启动Word时将出现恢复窗格。

", vbExclamation, "ExcelHome"

Else

Exit Sub

End If

End If

Else

MsgBox "本文档当前未设置页眉页脚,不需要进行删除操作。", vbOKOnly,

"ExcelHome"

End If

Updating = True

End Sub

'28、切换纵横向页面

Sub 切换纵横向页面()

'在"纵向页面"与"横向页面"间切换。

If ation = wdOrientLandscape Then

ation = wdOrientPortrait

Else

ation = wdOrientLandscape

End If

End Sub

39


发布者:admin,转转请注明出处:http://www.yc00.com/web/1713132729a2189351.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信