VBA提高篇35 VBA操作Word/PPT/Access_CreateObject/GetObject

1. Word参数

在这里插入图片描述

参数含义
ApplicationWord应用本身
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操作该文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pigerr杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值