VBA兼容64位系统的问题(二)MSComCtl控件无法使用的问题
在64位系统中,由于MSComCtl 控件无法正常使用,会造成以前32位版本编写的部分调用了这类控件的VBA程序无法正常运行。MSComCtl 控件包括了:TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListViews, ImageList, Slider, ImageComboBox这些控件,都是一些比较人性化的控件。
由于 2013以及以下版本使用的VBA还是VBA6,它并没有真正的64位的版本,所以还可以通过一些方法使用回原来的MSComCtl。
部分设备由于安装过OFFICE的64位版本,可能已经在系统中默认会有这个控件的存在,如我装过OFFICE2013,所以在C:\Windows\SysWOW64目录下存在着MSComCtl.ocx文件,而部分没有装过的,则不会出现这个文件,需要从原来的C:\Windows\system32目录中复制过去并注册。
注册的方法如下:
一、复制软件中自带的MSCOMCTL.OCX文件或者另外下一个MSCOMCTL.OCX文件
复制“MSCOMCTL.OCX”文件到“C:windowssyswow64”文件夹中
二、点击开始菜单,搜索到 cmd程序。(一定一定要以管理员身份运行)
三、在dos窗口中输入如下命令(如下图所示):
cd[回车键]
cd windows[回车键]
cd syswow64[回车键]
regsvr32 MSCOMCTL.OCX[回车键]
使用以上方法可以解决在AutoCAD 2013及以下版本的VBA某些控件的使用问题,但到了AutoCAD2014版本后,由于VBA升级到了VBA7,而64位的VBA7是真正的64位系统,此时不管你怎么使用以上方法,就是无法在控件列表中显示出这些控件。
所以这个问题在AutoCAD 2014中暂时还无法解决。
下面是2013的控件列表:
下面是2014的控件列表:(很明显是没有了MSCOMCTL.ocx文件中的那些控件了)
该贴已经同步到 **** Hidden Message ***** 今天正好遇到一个这种问题,估计是楼主讲的这个问题,能够加载VBA,但不能运行我写的VBA程序,说是有一个什么对象缺失,不能运行,显示为“执行错误”,多半是这个问题,星期一得看看是不是这个问题,谢谢! 我的64位ACAD2013在64位win7下可以加载运行一次2004下写的嵌入宏,图纸保存后第二次就加载不能了 好复杂 请问2014以后的这个问题怎么解决的呢?
页:
[1]