• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗中...

曾经的程序员。ASP.NET/C#, JavaScript, PL/SQL, T-SQL; 工具: VS2003/2005, Oracle, SQLServer; 偶尔写点CSS, 批处理.
头脑中经常有新想法, 可惜没有去实现.
Never give up.
Never get into a fight with a pig. Both of you will get dirty. But the pig actually enjoys it.
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

来源于:https://wangye.org/blog/archives/135/

在Mr.Abao’S Blog上看到的,VBA编程时要参考,特地转一下,另外由于嵌入到VBScript脚本中编程,对一些常量我给出了声明:

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

 

posted on 2020-04-16 22:58  jes  阅读(3343)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3