打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA提高篇35 VBA操作Word/PPT/Access_CreateObject/GetObject_getobject vba
userphoto

2023.05.31 天津

关注

文章目录

  • 1. Word参数
  • 2. PPt/Access
  • 3. office的互相调用
    • 3.1 工程创建CrateObject
    • 3.2 对比上面速度高,效率快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操作该文件

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
excel中如何通过VBA打开word文件和ppt文件?
Excel提取Word信息(一)「纯干货」
VBA和VB应用程序之异同和相互移植
关于word的VBA编程(转)
Word VBA参考教程(摘录)
将word1、word2....文档合并一个word文档
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服