gpt4 book ai didi

VBA 状态栏

转载 作者:行者123 更新时间:2023-12-04 19:25:59 33 4
gpt4 key购买 nike

我正在为大约 80 位用户开发 Word VBA 宏应用程序。办公室人员流动率高,因此培训受到影响,因此该项目的 self 强加要求之一是全面、友好的文档。然而,为了补充这一点,并且为了避免新手在尝试新事物时不得不打开 100 页的文档,我希望在每个用户窗体(有五个)上都有一个状态栏来提供上下文帮助。我发现工具提示很烦人。

我没有很多经验,所以我想

基本上,我有一个包含每个状态字符串的文件。 (目前这是一个文本文件,但我想知道我是否应该使用电子表格或 csv 以便将来其他员工编辑。)每个控件都有一个 MouseMove 事件,它引用一个函数:getStatus(cID) 打开文件,抓取该行并将其显示在状态标签中。它还从文件中的同一行获取一些参数,例如标签是否可点击(链接到帮助文件中的页面)以及标签应该是什么颜色。

真的有几个问题:

如果用户窗体不断引用文件,应用程序会变慢吗?对我来说感觉很好,但我已经在其中太久了,而且我是唯一访问该文件的用户。将有 80 个不断访问它。

MouseMove 在控件上是最好的方法吗?我应该改用坐标吗?

最重要的是(就我必须做的尽可能少的工作而言)是否有某种方法可以做到这一点,这样我就不必在每个控件上都有一个 MouseMove 事件?我有好几百个左右的控件,每个控件都有自己的标识符(好吧,现在还没有,但如果这是唯一的方法,它们就会有)。也许当加载表单时,我可以加载所有可能的状态行,以便在将鼠标悬停在控件上时随时可以使用它们。但是,也许加载时间可以忽略不计?

欣赏任何想法或想法 - 特别是如果 VBA 已经具有执行此操作的全部功能,而我只是想重新发明轮子。我不能使用应用程序状态栏,因为用户很少看到应用程序本身。

谢谢!

编辑:

它用于数据输入、点击和一些文档生成。

这是一个受控的环境,所以宏观安全问题对我来说不是一个大问题 - 如果出现问题,那是别人的错或问题:)

最佳答案

这是数据输入应用还是他们只是点击东西?因为焦点字段通常与鼠标悬停的项目不同,这会造成很多困惑。

不断地从文件中读取是对时间和资源的巨大浪费——在加载表单时只将它们加载到数组或集合中一次要好得多。

On MouseMouse 事件比坐标更好,因为您可以无忧无虑地移动东西。这是很多代码,但如果您有控件名称列表,您应该能够生成大部分代码,因为代码应该是相同的。

Sub Control_MouseMove()
DisplayStatus(Control)
End sub

关于VBA 状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/418316/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com