Excel VBA中的现代forms和表单控件

从Excel 97开始,Excel VBA的窗体和控件的外观就没有更新过。它们看起来像Windows 95.它已经变成了一个非常老式的外观。

某些控件(如checkbox,单选button和编辑框)具有可以使它们看起来二维的属性。 早在1997年,这使得它们看起来像Windows 3x那样过时,但是现在讽刺的是(?*)它使得这些控件看起来更加现代。 我一直这样做,但对其他一些控件,特别是命令button和下拉菜单,效果不佳。

是否可以直接调用Windows API来获得更现代化的表单和表单控件? 如果是这样,有没有人为他们做了一些样板VBA模块?

另外,在Macintosh上也可以使用Excel吗?

*我曾经以为我明白讽刺,但我再也不能确定了。

也许build立一个独裁者应用程序,并使用Excel形状作为前端控件。 将与3D效果很好,光滑。 但是在我的经验中,这也需要大量的编码,因为每个形状对象的每个状态都必须由您自己编码。

这不一定会获得额外的控制权限,但是我发现这对控制VBA无法访问(令人遗憾)的事情非常有用。 您可以使用此处提供的类: http : //www.oaltd.co.uk/DLCount/DLCount.asp?file=FormFun.zip访问表单上的一些Windows APIfunction。

假设这个类被称为cWindowsAPI:

private sub UserForm_Initialize() Dim formVar as cWindowAPI Set formVar = new cWindowAPI Set formVar.Form = Me ' Now you have access to the different options available via the api ' that were exposed within the cWindowAPI class of course formVar.ShowCaption = false formVar.ShowMaximizeBtn = false ' Etc... End Sub 

也许可以通过使用有用的API来进行扩展。

从VBA调用Windows API是可能的,但它是很多的工作,容易出错,很难debugging – 我不会推荐它。

或者,您可以使用C#或VB.Net创buildActiveX控件,然后在您的项目中使用这些控件 – 这样做要简单得多。 这个问题/答案有更多的细节。