VBA提高篇35 VBA操作Word/PPT/Access

您所在的位置:网站首页 使用vba给excel加密码 VBA提高篇35 VBA操作Word/PPT/Access

VBA提高篇35 VBA操作Word/PPT/Access

2023-04-01 16:56| 来源: 网络整理| 查看: 265

文章目录 1. Word参数2. PPt/Access3. office的互相调用3.1 工程创建CrateObject3.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操作该文件 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3