zoukankan      html  css  js  c++  java
  • EXCEL 引用autocad vba,自动加载其类型库


    Sub AutoADDAutoCADTypeLib()
        Dim Ref As Variant
        Dim hasAutoTypeLib As Boolean, hasAXDBLib As Boolean, acadName As String
        hasAutoTypeLib = False: hasAXDBLib = False
        For Each Ref In ThisWorkbook.VBProject.References
            If Ref.Name = "AutoCAD" Then hasAutoTypeLib = True
            If Ref.Name = "AXDBLib" Then hasAXDBLib = True
        Next Ref
        Dim wshell As Object
        Set wshell = CreateObject("WScript.Shell")
        Dim strAcadShardFd As String, acadCurVer1 As String, acadCurVer2 As String, acadLanguage As String
        '读取cad的版本
        acadCurVer1 = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCADCurVer")
        '读取cad的语言版本
        acadCurVer2 = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & acadCurVer1 & "CurVer")
        '读取cad的最后一次启动的语言版本
        acadLanguage = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & acadCurVer1 & "" & acadCurVer2 & "AllUsersFolder")
        Dim LanguagePath As Variant, acadVer As String
        LanguagePath = VBA.Split(acadLanguage, "")
        acadVer = VBA.Mid(acadCurVer1, 2, 2) & LanguagePath(UBound(LanguagePath) - 1)
        acadName = LanguagePath(UBound(LanguagePath) - 3)
        '读取cad的64位类型库的路径
        strAcadShardFd = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & acadCurVer1 & "" & acadCurVer2 & "AutodeskSharedFolder")
        
        '读取cad的32位类型库的路径
        'strAcad32ShardFd = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & acadCurVer1 & "" & acadCurVer2 & "AutodeskShared32Folder")
        
        Set wshell = Nothing
        
        If hasAutoTypeLib = False Then
            ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "acax" & acadVer & ".tlb")
            MsgBox acadName & " AutoCAD Type Lib Already add to referecne scucces"
        Else
            MsgBox "AutoCAD Type Lib Already add to referecne, no need add aagin"
        End If
        If hasAXDBLib = False Then
            ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "axdb" & acadVer & ".tlb")
            MsgBox acadName & " AXDBLib Already add to referecne scucces"
        Else
            MsgBox "AXDBLib Already add to referecne, no need add aagin"
        End If
    End Sub
    

     

     

  • 相关阅读:
    Partition4:增加分区
    Partition5:Partiton Scheme是否指定Next Used?
    UniqueIdentifier 数据类型 和 GUID 生成函数
    SQL Server 并发控制 第三篇:隔离级别和行版本(2)
    SQL Server 常用内置函数
    In-Memory:在内存中创建临时表和表变量
    Partition2:对现有表分区
    Partition1:新建分区表
    Partition3:分区切换(Switch)
    Pivot 和 Unpivot
  • 原文地址:https://www.cnblogs.com/NanShengBlogs/p/13606109.html
Copyright © 2011-2022 走看看