ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何运用VBA,获取最后活动的PPT,EXCEL,WORD的路径

如何运用VBA,获取最后活动的PPT,EXCEL,WORD的路径

作者:绿色风 分类: 时间:2022-08-17 浏览:129
楼主
い卋玑┾宝珼
Q:如何运用VBA,获取最后活动的PPT,EXCEL,WORD的路径
PS:以下代码在PPT,Excel,Word中均可以正常运行,并添加错误处理

A:
  1. '获取PPT的路径
  2. Sub GetActivePPTLocation()
  3.     Dim MyPPT As Object, myBook As Object, FileName$
  4.     Dim PPTWasNotRunning As Boolean
  5.     On Error Resume Next
  6.     Set MyPPT = GetObject(, "PowerPOINT.Application")   ' GetObject
  7.     If Err.Number <> 0 Then PPTWasNotRunning = True   '判断是否有Error
  8.     Err.Clear
  9.     If PPTWasNotRunning = True Then '获取PPT对象错误,打开错误提示
  10.         MsgBox "Tips:PPT没有打开"    '错误提示
  11.     Else
  12.         Set myBook = MyPPT.activepresentation    '获取当前打开的PPT
  13.         FileName = myBook.FullName    '获取打开文件的绝对路径
  14.         MsgBox FileName
  15.     End If
  16. End Sub

  17. '获取excel的路径
  18. Sub GetActiveExcelLocation()
  19.     Dim MyExcel As Object, myBook As Object, FileName$
  20.     Dim ExcelWasNotRunning As Boolean
  21.     On Error Resume Next
  22.     Set MyExcel = GetObject(, "EXCEL.Application")  ' GetObject
  23.     If Err.Number <> 0 Then ExcelWasNotRunning = True    '判断是否有Error
  24.     Err.Clear
  25.     If ExcelWasNotRunning = True Then    '获取Excel对象错误,打开错误提示
  26.         MsgBox "Tips:Excel没有打开"    '错误提示
  27.     Else
  28.         Set myBook = MyExcel.ActiveWorkbook    '获取当前打开的Excel
  29.         FileName = myBook.FullName    '获取打开文件的绝对路径
  30.         MsgBox FileName
  31.     End If

  32. End Sub

  33. '获取Word的路径
  34. Sub GetActiveWordLocation()
  35.     Dim MyWord As Object, myBook As Object, FileName$
  36.     Dim WordWasNotRunning As Boolean
  37.     On Error Resume Next
  38.     Set MyWord = GetObject(, "word.Application")    ' GetObject
  39.     If Err.Number <> 0 Then WordWasNotRunning = True    '判断是否有Error
  40.     Err.Clear
  41.     If WordWasNotRunning = True Then    '获取Word对象错误,打开错误提示
  42.         MsgBox "Tips:Word没有打开" '错误提示
  43.     Else
  44.         Set myBook = MyWord.Activedocument    '获取当前打开的WORD
  45.         FileName = myBook.FullName    '获取打开文件的绝对路径
  46.         MsgBox FileName
  47.     End If
  48. End Sub
2楼
xyf2210
好棒
3楼
0Mouse
找点话说,O(∩_∩)O哈哈~
1.标题里的“如何运用VBA,”的“逗号”貌似多余,后面的3个短号貌似用“、”比较符合中文习惯。
2.假如关闭了文档仅留下程序(图1),那么程序运行结果返回空。当然,这个结果也没有错,只是如果能再加一个判断返回结果是否为空给予“是否仅有程序而无文档”的提示或许更加周到一些。
图1:仅有程序无文档

 
3.代码中定义的“ExcelWasNotRunning”变量是否可以省略,即
  1.     If Err.Number <> 0 Then ExcelWasNotRunning = True    '判断是否有Error
  2.     Err.Clear
  3.     If ExcelWasNotRunning = True Then    '获取Excel对象错误,打开错误提示
  4.         MsgBox "Tips:Excel没有打开"    '错误提示
  5.     Else
直接简化成
  1.     If Err.Number <> 0 Then
  2.         Err.Clear
  3.         MsgBox "Tips:Excel没有打开"    '错误提示
  4.     Else
代码中所定义的变量名都有实际意义,好习惯!总体来说,此帖蛮不错!学习!
4楼
い卋玑┾宝珼
坏人了,你是来找茬的

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap