VBA代码如何切换word和excel(3)

2024-06-15 0

【分享成果,正能量欢喜】人不可能因为一件好事而快乐一年,却可以因为一次创伤而郁闷一生。痛苦总是比快乐更能刺激人。不宜谈论大人的痛苦,难以理解别人的喜怒哀乐。一个人最强大的时刻不是坚持,而是放手。每个人的这一生都有属于自己的一段路,只要努力,众生都会自己过去。。

《VBA数据检索与处理》教程(10178984)是我推出的第六套教程,目前是第一个修订版。这套教程放在最高级的位置,是为完成基础和中级的人准备的教程。本教程讲解:跨程序数据采集、使用随机数据、发送电子邮件、VBA互联网数据捕获、VBA延迟操作、剪贴板实现、Split函数扩展、工作表数据等等。应用程序交互、FSO对象的使用、工作表和文件夹信息、图形数据检索、工作表数据功能的自定义等等。软件文件已通过32位和64位OFFICE系统测试。它非常抽象,更具研究价值。

教材共两卷,二十个主题。今天分享的内容是:如何用VBA代码更改word和excel(三)

第二节:Word和Excel程序之间的激活操作

例如,在我们的报告界面中,当界面运行时,我们需要激活在第二个和第三个按钮中打开的Excel。

代码说明:上面的代码在头中创建了一个引用API函数的表达式,如果找到,将首先搜索EXCEL。该程序将激活并聚焦主EXCEL程序。注意:如果VBA编辑器打开,此操作将无法正常工作。如果VBA编辑器窗口打开,系统会将焦点设置到XLMAIN窗口而不是该窗口。此代码可以激活任何程序,只需将myCLASS更改为程序主窗口的类即可。

Excel97、2000、2002、2003、2007、2013是XlMain

Word97、2000、2002、2003、2007、2013是OpusApp

Access2000、2002、2003、2007、2013是OMain

我们看一下上面代码的详细解释:

①ConstMYCLASS'XLMAIN'

Main获取Excel应用程序窗口的窗口句柄(“XLMAIN”)。如果“多个Excel实例正在运行”,您无法控制将获取哪个实例HWnd。

②XLHWndFindWindow(lpClassName:MyCLASS,lpWindowName:vbNullString)

调用FindWindow时必须使用“vbNullString不是空字符串”,调用API函数时vbNullString和空字符串“”是有区别的。

③BringWindowToTop(HWnd:XLHWnd)将应用程序置于顶部

函数语法:BringWindowToTop(HWNDhWnd);

功能:该函数将显示窗口设置到Z行的顶部。如果该窗口是顶级窗口,如果该窗口是子窗口,则激活相应的顶级父窗口。

参数:hWnd:设置Z行顶部的窗口句柄。

返回值:如果函数成功,则返回值为零;如果函数失败,则返回值为零;如果想获取更多的错误信息,可以调用GetLastError函数。

④FindWindow的使用

功能:该函数检索类名和窗口名与给定字符串匹配的顶级窗口的句柄。该函数不搜索子窗口。搜索不区分大小写。

函数语法:HWNDFindWindow(LPCSTRIpClassName,LPCSTRIpWindowName);

参数:IpClassName:指向指定类名称的以null结尾的字符串的指针,或指向指定类名称字符串的成员的指针。如果此参数是成员,则它必须是先前调用GlobafAddAtom函数创建的全局成员。该成员为16位,必须位于IpClassName的低16位,且高位必须为0。

IpWindowName:显示指定窗口名称(窗口标题)的以null结尾的字符串。如果此设置为空,则所有窗口都将对齐。

返回值:如果函数成功,返回值为指定类名的窗口句柄,如果函数失败,返回值为NULL。

这该函数有两个参数,第一个是您要查找的窗口的类,第二个是您要查找的窗口的标题。搜索时,不必两者都知道,但至少必须知道其中之一。有些窗口的标题比较容易找到,例如“计算器”,因此在搜索时应该使用标题。但有些程序的标题并不固定,例如“记事本”中打开的文件不同,窗口标题也会不同。如果找到符合条件的窗口,该函数返回窗口的句柄,否则返回0。

⑤关于句柄,句柄是所有Windows编程的基础。支持是指一个唯一的整数值,即4字节长的值,用于标识应用程序中的不同对象以及同一类型的不同实例,例如Window,例如4字节(64位软件中为8字节))。按钮、图标、滚动条、输出设备、控件或文件等。应用程序可以通过句柄访问相应对象的数据,但句柄不是指针,应用程序不能使用句柄直接从文件中读取数据。如果I/O文件中没有支持,那么它是没有用的。句柄是一个唯一的整数,Windows使用它来标识在应用程序中创建或使用的对象,Windows广泛使用它来标识对象。

⑥设置焦点HWnd:XLHWnd

设定焦点。

本节知识点:本节我们主要采用两种解决方案,找到程序的一部分,然后链接到上面。对于这两种方法,应对应用程序进行测试,第一个应该检查所使用的office是否适合该应用程序,第二个应该检查应用程序的稳定性。本次讲座知识点:

①如何申请AppActivate。

②如何实现FindWindow和SetFocus。

③分析以上两种应用的优缺点。

④了解API函数声明与OFFICE版本的关系。

本节代码参考文件为“EnableEXCELdocmin001WORD”

我20多年的VBA实践经验集中在以下教程中:

【分享成果,正能量欢喜】任何喧嚣经不起时间的风雨,都不是痛苦,只是一片浮云。。

本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。

发布评论