1. Word参数
参数 | 含义 |
---|---|
Application | Word应用本身 |
Document | 代表一个Word文件 |
Characters | 该文件中所有字符 |
参数 | 含义 |
---|---|
Range.Text | 该Range的内容,即其中所有字符构成的字符串,相当于Excel中的Range.Value属性 |
Range(num1,num2) | 从0开始,从第n个字符到第n个字符 |
. | 通过使用指定的开始和结束字符位置返回一个 Range 对象。 |
参数 | 含义 |
---|---|
Document.Range | 该文档中所有字符构成的Range对象 |
Document.Range.Text | 该文档中所有的全部文本 |
Document.Paragraphs(i) | 段落属性 |
Document.Paragraph |
Option Explicit
Sub chgNamberColor()
Dim i As Long, j As Long, r As Range
For i = 1 To 28
For j = 1 To 25
Set r = Cells(i, j)
If IsNumeric(r.Value) Then
r.Font.Color = vbRed
r.Font.Bold = True
r.Font.Italic = True
End If
Next j
Next i
End Sub
' 本程序可以修改将当前活动文档中的所有百分数的格式
Sub chgNumbers2()
Dim c As Range, d As Document
Dim reg As Object, mches As Object, mch As Object
'让d 代表当前活动文档
Set d = Application.ActiveDocument
'创建正则表达对象,搜索百分比数字(点号出现0次或1次)
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "\d+\.?\d+%"
reg.Global = True
'将当前文档全部文字作为一个字符串,执行正则表达式
Set mches = reg.excute(d.Range.Text)
'对于每一个查找结果,根据其在全部文本中的出现位置,确定Range范围
'并将该Range对象赋值给变量c,然后设置 c 的格式
For Each mch In mches
Set c = d.Range(mch.firstindex, mch.firstindex + mch.Length)
c.Font.ColorIndex = wdRed
c.Font.Bold = True
c.Font.Italic = True
Next mch
End Sub
Sub newDocs() '操作word文档
Dim i As Long, p As Paragragh
Dim d1 As DocumentInspector, d2 As documnet
'让d1 代表本文档,以免后面添加新文档时,发生混乱
Set d1 = activeDocument
'用变量 i 控制每个新文件的文件名
i = 1
'扫描每个段落
For Each p In d1.Paragraphs
'新建一个文档并赋值给d2
Set d2 = Application.Document.add
'将该段落的文字内容赋值给d2文档,
d2.Range.test = d1.Paragraphs(i).Range.Text
' 根据i命名文海,让后保存并关闭
d2.SaveAs "d:\vbademo\" & i & ".docx"
d2.Close
'让i增加1,以备下次文档命名使用
i = i + 1
Next p
End Sub
Sub importFromWord()'遍历word写入Excel
Dim w As Object, i As Long, doc As Object
'创建一个word的application对象,有w代表
Set w = CreateObject("word.application")
' 循环打开使用数字命名的各个word文档,有doc代表
For i = 1 To 8
Set doc = w.Document.Open("d:\vbademo\") & i & ".docx"
' 将该文档的文字内容写入到Excel 工作表第i行
Cells(i, 1) = doc.Range.Text
'关闭该文档
doc.Close
Next i
'关闭word(如此句未执行,则WINWORD.EXE始终存在于内存中,因而再次打开word文档时,可能发生错误)
w.Quit
End Sub
Sub importFromWord2()
Dim i As Long, doc As objcet
For i = 1 To 8
Set doc = Getobject("d:\vbademo\" & i & ".docx")
' 将该文档的文字内容写入到Excel 工作表第i行
Cells(i, 1) = doc.Range.Text
'关闭该文档
doc.Close
Next i
End Sub
2. PPt/Access
PPT: Presentation对象代表一个PPT文件⇒ Slides中的Slide代表每个一幻灯片
具体方法同Word
3. office的互相调用
Office对象完全一样,可以互相调用,了解对应的软件结构即可
3.1 工程创建CrateObject
CrateObject("word.application")
外部应用对象调用,常用操作方法创建一个对应的对象
3.2 对比上面速度高,效率快GetObject
Set a = GetObject("文件名")
能够打开该文件,并直接生成一个相应的对象赋值给a,从而可以使a操作该文件