+ -
当前位置:首页 → 问答吧 → 怎样用VBA写一句话,判断word是不是当前活动窗口?

怎样用VBA写一句话,判断word是不是当前活动窗口?

时间:2002-03-22

来源:互联网

同题。

作者: 得之我幸   发布时间: 2002-03-22

一句话恐怕解决不了问题,要用一组语句才行.下面是一个例子.[upload=rar]uploadImages/200232219195334493.rar[/upload]

作者: 惊叹不已   发布时间: 2002-03-22

谢谢惊叹不已,帮了我很大的忙。我还有一个问题,需要你的帮助。就是当我切换到其他应用程序的窗口后,怎样使word跳出一个消息框,并在按下“确定”按钮后,返回word窗口,按“取消”则仍在当前窗口。就有点类似于outlook里面那个提示有新邮件问要不要现在就看的那个窗口。因为我现在试了一下,直接在word里面用msgbox "something"的话,这个msgbox不会弹出来,只会在屏幕下方看到word窗口的图标不停地闪烁,怎样才能让这个msgbox 弹出来?谢谢!

作者: 得之我幸   发布时间: 2002-03-25

你说的这个功能在VB中是很容易实现的,但在VBA中我还没搞清楚API函数的hWnd的用法,它的用法跟在VB中似乎是不同的,等我搞清楚了再告诉你吧.抱歉!!!

作者: 惊叹不已   发布时间: 2002-03-25

难道不用API函数,只用VBA内部的函数就没有办法实现吗?

[此贴子已经被作者于2002-3-26 9:30:30编辑过]

作者: 得之我幸   发布时间: 2002-03-26

看看这个符不符合你的要求.[upload=rar]uploadImages/200232616381899373.rar[/upload]

作者: 惊叹不已   发布时间: 2002-03-26

谢谢惊叹不已。我自己也作了一个,是承袭了上次你给我的那个例子加以补充,请你看一下,并提出建议。Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As LongPublic Const MSG_ALARM As String = "Do you want to back to Word?"Function AlarmToInform() As BooleanDim MyStr As StringDim Ret As LongDim val As IntegerMyStr = String(100, Chr$(0))Ret = GetForegroundWindow()GetWindowText Ret, MyStr, 100MyStr = Left$(MyStr, InStr(MyStr, Chr$(0)) - 1)If InStr(MyStr, "Microsoft Word") = 0 Thenval = MessageBox(Ret, MSG_ALARM, "Warning", 1)If val = 1 Then Tasks("Microsoft Word").ActivateEnd IfEnd Function我用的是MessageBox这个API。

作者: 得之我幸   发布时间: 2002-03-27

没错,你的方法比较好。真该死,居然想不起有MessageBox和MessageBoxEx这两个函数。另外,也可以用Application.Activate来返回Word。

[此贴子已经被惊叹不已于2002-3-27 15:44:02编辑过]

作者: 惊叹不已   发布时间: 2002-03-27

都是高手!

作者: 轻舟   发布时间: 2003-05-05

附件下载不了,怎么办?

作者: wawapei   发布时间: 2010-12-05