文本序列的剪切、复制、粘贴和删除

剪切、复制、粘贴和删除是文本编辑的基本操作。使用Range对象的Cut, Copy, Paste和Delete等方法可以实现这些操作。

下面在打开的文档中定义第20到35个字符为一个字符序列,将该字符序列中的文本复制到剪贴板,然后粘贴到第50个字符处。

code.vba
Sub Test()
  '按文本复制和粘贴
  Dim doc As Document
  Set doc = Documents.Open("D:\test2.docx")
  Dim rng As Range
  Set rng = doc.Range(Start:=26, End:=34)
  rng.Font.Size = 30
  Dim rng2 As Range
  Set rng2 = doc.Range(Start:=50, End:=50)
  rng.Copy
  rng2.Paste
End Sub

操作效果如图3-19所示。

Document Image

图3-19 字符序列的复制和粘贴

使用Range对象的CopyAsPicture方法可以将指定字符序列的文本按图片进行复制,然后可以用PasteSpecial方法粘贴到指定位置。

下面在打开的文档中定义第20到35个字符为一个字符序列,按图片复制该字符序列的文本,然后粘贴到第50个字符处。

code.vba
Sub Test2()
  '按图片复制,粘贴为浮动图片
  Dim doc As Document
  Set doc = Documents.Open("D:\test2.docx")
  Dim rng As Range
  Set rng = doc.Range(Start:=26, End:=34)
  rng.Font.Size = 30
  Dim rng2 As Range
  Set rng2 = doc.Range(Start:=50, End:=50)
  rng.CopyAsPicture
  rng2.PasteSpecial datatype:=wdPasteMetafilePicture
End Sub

选择粘贴后的内容,如图3-20所示,可见它是一个图片。默认时该图片是悬浮在文本上方的。

Document Image

图3-20 按图片复制和粘贴字符序列

设置PasteSpecial方法的Placement参数的值为constants.wdInLine,将图片以嵌入的方式粘贴到文本中。

code.vba
Sub Test3()
  '按图片复制,粘贴为嵌入式图片
  Dim doc As Document
  Set doc = Documents.Open("D:\test2.docx")
  Dim rng As Range
  Set rng = doc.Range(Start:=26, End:=34)
  rng.Font.Size = 30
  Dim rng2 As Range
  Set rng2 = doc.Range(Start:=50, End:=50)
  rng.CopyAsPicture
  rng2.PasteSpecial datatype:=wdPasteMetafilePicture, placement:=wdInLine
End Sub

效果如图3-21所示。

Document Image

图3-21 将图片嵌入文本