VBA对Word行、段落和光标位置的移动、选择和操作
2018-05-24 14:17阅读:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Const wdCharacter = 1 Const wdExtent = 1 Const wdExtend = 1
Const wdGoToBookmark = -1 Const wdLine = 5 Const wdCell = 12 Const
wdTableFormatSimple2 = 2 Const wdAlignParagraphRight = 2 Const
wdYellow = 7 Const wdToggle = 9999998 Const wdAlignParagraphCenter
= 1 Const wdSentence = 3 Const wdParagraph = 4 Const wdStory = 6
Const wdMove = 0
|
下面我将
Mr.Abao’S
Blog的内容转帖(略作修改,主要是注释部分增加了VBScript的脚本写法):在WORD中用VBA宏语言选定一行、一段,删除一行、一段,移动光标至行首、行尾、段首、段尾等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98
|
|
Sub MoveToCurrentLineStart() '
移动光标至当前行首 '
Selection.HomeKey wdLine Selection.HomeKey
unit:=wdLine End
Sub Sub MoveToCurrentLineEnd()
' 移动光标至当前行尾
' Selection.EndKey wdLine
Selection.EndKey unit:=wdLine End Sub Sub
SelectToCurrentLineStart() ' 选择从光标至当前行首的内容 ' Selection.HomeKey wdLine, wdExtend
Selection.HomeKey unit:=wdLine, Extend:=wdExtend End Sub Sub SelectToCurrentLineEnd()
' 选择从光标至当前行尾的内容
' Selection.EndKey wdLine,
wdExtend Selection.EndKey unit:=wdLine,
Extend:=wdExtend End
Sub Sub SelectCurrentLine() ' 选择当前行 '
Selection.HomeKey wdLine ' Selection.EndKey wdLine, wdExtend
Selection.HomeKey unit:=wdLine Selection.EndKey unit:=wdLine,
Extend:=wdExtend End
Sub Sub MoveToDocStart() ' 移动光标至文档开始 '
Selection.HomeKey wdStory Selection.HomeKey
unit:=wdStory End
Sub Sub MoveToDocEnd() ' 移动光标至文档结尾 '
Selection.EndKey wdStory Selection.EndKey
unit:=wdStory End
Sub Sub SelectToDocStart() ' 选择从光标至文档开始的内容 ' Selection.HomeKey wdStory, wdExtend
Selection.HomeKey unit:=wdStory, Extend:=wdExtend End Sub Sub SelectToDocEnd() ' 选择从光标至文档结尾的内容 ' Selection.EndKey wdStory, wdExtend
Selection.EndKey unit:=wdStory, Extend:=wdExtend End Sub Sub SelectDocAll() ' 选择文档全部内容(从WholeStory可猜出Story应是当前文档的意思)
Selection.WholeStory End
Sub Sub
MoveToCurrentParagraphStart() ' 移动光标至当前段落的开始 ' Selection.MoveUp wdParagraph
Selection.MoveUp unit:=wdParagraph End Sub Sub
MoveToCurrentParagraphEnd() ' 移动光标至当前段落的结尾 ' Selection.MoveDown wdParagraph
Selection.MoveDown unit:=wdParagraph End Sub Sub
SelectToCurrentParagraphStart() ' 选择从光标至当前段落开始的内容 ' Selection.MoveUp wdParagraph, wdExtend
Selection.MoveUp unit:=wdParagraph, Extend:=wdExtend
End Sub Sub
SelectToCurrentParagraphEnd() ' 选择从光标至当前段落结尾的内容 ' Selection.MoveDown wdParagraph, wdExtend
Selection.MoveDown unit:=wdParagraph, Extend:=wdExtend
End Sub Sub SelectCurrentParagraph()
' 选择光标所在段落的内容
' Selection.MoveUp
wdParagraph '
Selection.MoveDown wdParagraph, wdExtend
Selection.MoveUp unit:=wdParagraph Selection.MoveDown
unit:=wdParagraph, Extend:=wdExtend End Sub Sub
DisplaySelectionStartAndEnd() '显示选择区的开始与结束的位置,注意:文档第1个字符的位置是0 MsgBox
('第' &
Selection.Start & '个字符至第' & Selection.End & '个字符') End Sub Sub DeleteCurrentLine() ' 删除当前行 '
Selection.HomeKey wdLine ' Selection.EndKey wdLine, wdExtend
Selection.HomeKey unit:=wdLine Selection.EndKey unit:=wdLine,
Extend:=wdExtend Selection.Delete End Sub Sub DeleteCurrentParagraph()
' 删除当前段落
' Selection.MoveUp
wdParagraph '
Selection.MoveDown wdParagraph, wdExtend
Selection.MoveUp unit:=wdParagraph Selection.MoveDown
unit:=wdParagraph, Extend:=wdExtend Selection.Delete
End Sub