VBA对Word行、段落和光标位置的移动、选择和操作

180it 2019-09-25 PM 6619℃ 0条

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宏语言选定一行、一段,删除一行、一段,移动光标至行首、行尾、段首、段尾等。

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

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

VBA对Word行、段落和光标位置的移动、选择和操作