剪切、复制、粘贴和删除是文本编辑的基本操作。使用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所示。
图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所示,可见它是一个图片。默认时该图片是悬浮在文本上方的。
图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所示。
图3-21 将图片嵌入文本