明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3230|回复: 4

VBA兼容64位系统的问题(二)MSComCtl控件无法使用的问题

  [复制链接]
发表于 2013-8-20 22:05:24 | 显示全部楼层 |阅读模式
在64位系统中,由于MSComCtl 控件无法正常使用,会造成以前32位版本编写的部分调用了这类控件的VBA程序无法正常运行。
MSComCtl 控件包括了:TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListViews, ImageList, Slider, ImageComboBox这些控件,都是一些比较人性化的控件。
由于AutoCAD 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文件中的那些控件了)



该贴已经同步到 mccad的微博

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-8-30 23:43:14 | 显示全部楼层
今天正好遇到一个这种问题,估计是楼主讲的这个问题,能够加载VBA,但不能运行我写的VBA程序,说是有一个什么对象缺失,不能运行,显示为“执行错误”,多半是这个问题,星期一得看看是不是这个问题,谢谢!
发表于 2013-9-10 11:55:35 | 显示全部楼层
我的64位ACAD2013在64位win7下可以加载运行一次2004下写的嵌入宏,图纸保存后第二次就加载不能了
发表于 2014-8-4 16:54:39 | 显示全部楼层
好复杂[em0]
发表于 2021-10-31 01:30:10 | 显示全部楼层
请问2014以后的这个问题怎么解决的呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-22 18:53 , Processed in 0.152449 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表