后期绑定以避免“用户定义的类型未定义”错误

卡克拉罗尔

在Word 2010宏VBA中,我设置了

Set objXML = New MSXML2.DOMDocument30

获取xml类型的Word.officeUI文件。

但是当我调用处理Word.officeUI文件的子程序时

user defined type not defined

错误上升。

我不想从工具>参考中添加任何必要的.dll或其他来源。我需要在运行时(Word的第一次打开)中添加任何东西。这是我在下面使用的实际代码,

' bu özel sub sadece onLoad event'ına karşılık gelen ve belge ilk defa yüklendiğinde çalışan özel bir sub
Private Sub Document_Open()
Application.ActiveDocument.VBProject.References.AddFromFile ("C:\Windows\System32\msxml3.dll")
Call officeUI_duzelt
End Sub

Function yeniDosyaAdiVer()
yeniDosyaAdiKelimeleri = Split(ActiveDocument.FullName, ".")
yeniDosyaAdiKelimeleriSayisi = UBound(yeniDosyaAdiKelimeleri)
    For xcv = 0 To (yeniDosyaAdiKelimeleriSayisi - 1)
        sonDosyaAdi = sonDosyaAdi & yeniDosyaAdiKelimeleri(xcv) & "."
        yeniDosyaAdiVer = sonDosyaAdi
    Next
End Function


Sub TITCK2pdf()
    With ActiveDocument
    sondurum = Replace(yeniDosyaAdiVer(), (.Path & "\"), "")
    'MsgBox (sondurum)
    sonPDFAdi = .Path & "\titck-imza-" & sondurum & "pdf"
    'MsgBox (.FullName & Chr(13) & sonPDFAdi)

      .ExportAsFixedFormat OutputFileName:=sonPDFAdi, _
      ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, _
      OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportAllDocument, _
      Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
      CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
      BitmapMissingFonts:=True, UseISO19005_1:=False
    End With
End Sub

Sub TITCK_ic2pdf()
    With ActiveDocument
    sondurum = Replace(yeniDosyaAdiVer(), (.Path & "\"), "")
    'MsgBox (sondurum)
    sonPDFAdi = .Path & "\titck-imza-ic-" & sondurum & "pdf"
    'MsgBox (.FullName & Chr(13) & sonPDFAdi)

      .ExportAsFixedFormat OutputFileName:=sonPDFAdi, _
      ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, _
      OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportAllDocument, _
      Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
      CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
      BitmapMissingFonts:=True, UseISO19005_1:=False
    End With
End Sub

Sub officeUI_duzelt()
' // OfficeUI dosyasının yolu alınıyor
OfficeUI_yolu = "C:\Users\" & Environ$("Username") & "\AppData\Local\Microsoft\Office\Word.officeUI"

' // OfficeUI dosyası (xml formatında) ele alınıyor
Set objXML = New MSXML2.DOMDocument30
objXML.Load (OfficeUI_yolu)

'// OfficeUI içindeki node bilgileri ele alınıyor
Set dugmelerinAnaci = objXML.getElementsByTagName("mso:sharedControls")(0)


'// Daha önce değişiklik yapılmış mı  kontrol amaçlı girdi bakılıyor
Set modifikasyon = objXML.getElementsByTagName("modifikasyon")

'// Modifikasyon yapıldıysa sub'dan çıkılıyor
'MsgBox (modifikasyon.Length)
If modifikasyon.Length > 0 Then
Exit Sub
End If
'/////////////////////////////////////// SUB çıkış şartı var üstte

' // Her durumda modifikasyon yapılacak (modifikasyon nodu eklenecek (mso:sharedControls ana nodunun altına ekleniyor)
Set mdf = objXML.createElement("modifikasyon")
dugmelerinAnaci.appendChild mdf




'// mso:button node'larına ait xml içerikleri gösteriliyor
'Set yeniDegerler = objXML.getElementsByTagName("mso:button")
'For yD = 0 To (yeniDegerler.Length - 1)
'MsgBox (yeniDegerler(yD).XML)
'Next



' Element ekleniyor ve o elemente attribute'lar ekleniyor
Set yNesne = elementYaratVeEkle("mso:button", dugmelerinAnaci, objXML)
    yAttribute = attributeYaratVeEkle("idQ", "x1:TITCK_ic2pdf_1", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("visible", "true", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("label", "İç yazışma PDF yapıcısı", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("imageMso", "AppointmentColor3", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("onAction", "TITCK_ic2pdf", yNesne, objXML)

Set yNesne = elementYaratVeEkle("mso:button", dugmelerinAnaci, objXML)
    yAttribute = attributeYaratVeEkle("idQ", "x1:TITCK2pdf_1", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("visible", "true", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("label", "Dış yazışma PDF yapıcısı", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("imageMso", "AppointmentColor1", yNesne, objXML)
    yAttribute = attributeYaratVeEkle("onAction", "TITCKpdf", yNesne, objXML)



've kayıt
objXML.Save (OfficeUI_yolu)
End Sub
Function elementYaratVeEkle(elementAdi, AnacElementNesnesi, hazirXMLNesnesi)
Set objYeniNesne = hazirXMLNesnesi.createElement(elementAdi)
AnacElementNesnesi.appendChild objYeniNesne
Set elementYaratVeEkle = objYeniNesne
End Function
Function attributeYaratVeEkle(attributeAdi, attributeDegeri, AnacElementNesnesi, hazirXMLNesnesi)
Set objXMLattr = hazirXMLNesnesi.createAttribute(attributeAdi)
objXMLattr.NodeValue = attributeDegeri
AnacElementNesnesi.setAttributeNode objXMLattr
End Function
让·弗朗索瓦·科贝特(Jean-Francois Corbett)

这是使它滞后的方法:

Dim objXML As Object
Set objXML = CreateObject("Msxml2.DOMDocument.3.0")

现在,您无需设置对MSXML的显式引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误的“未定义用户定义类型”错误

来自分类Dev

VBA用户定义的类型未定义错误

来自分类Dev

如何在不同的类中使用相同的头文件,以避免“使用未定义的类型”

来自分类Dev

检查JavaScript中是否存在var以避免未定义的.top错误

来自分类Dev

VBA 用户定义类型未定义

来自分类Dev

类型错误 .then 未定义

来自分类Dev

Npm 错误“未定义内部绑定”

来自分类Dev

如何修复函数以避免错误日志(未定义偏移量:2 in ..)-爆炸

来自分类Dev

VB6编译错误:未定义用户定义的类型

来自分类Dev

Visual Basic 6-编译错误:未定义用户定义的类型

来自分类Dev

如何修复编译错误:从Outlook使用Excel VBA时未定义用户定义类型?

来自分类Dev

什么是“未定义编译错误用户定义类型”?

来自分类Dev

Visual Basic 6-编译错误:未定义用户定义的类型

来自分类Dev

问题与 VBA 代码抛出“用户定义类型未定义”错误

来自分类Dev

类型按钮的setonclickListener错误未定义

来自分类Dev

未定义类型对象错误的方法

来自分类Dev

AnyLogic getHomeLocation()错误“类型未定义”

来自分类Dev

对于类型错误,未定义findViewById

来自分类Dev

AJAX 类型错误:查询未定义

来自分类Dev

类型错误:this.getResults(...) 未定义

来自分类Dev

未定义的元组的python类型错误

来自分类Dev

解决类型错误:事件未定义

来自分类Dev

Excel VBA宏:未定义用户定义的类型

来自分类Dev

未捕获的类型错误:无法读取 backend.js 中未定义的属性“绑定”

来自分类Dev

错误类型错误:无法设置未定义的属性“用户名”

来自分类Dev

类型错误:arrayal[i] 未定义但已定义

来自分类Dev

我在哪里放置 defuse 库,以避免调用未定义的方法?

来自分类Dev

未定义数组的 JSON.parse 回退以避免异常

来自分类Dev

Flight Framework如何避免未定义的索引错误

Related 相关文章

  1. 1

    错误的“未定义用户定义类型”错误

  2. 2

    VBA用户定义的类型未定义错误

  3. 3

    如何在不同的类中使用相同的头文件,以避免“使用未定义的类型”

  4. 4

    检查JavaScript中是否存在var以避免未定义的.top错误

  5. 5

    VBA 用户定义类型未定义

  6. 6

    类型错误 .then 未定义

  7. 7

    Npm 错误“未定义内部绑定”

  8. 8

    如何修复函数以避免错误日志(未定义偏移量:2 in ..)-爆炸

  9. 9

    VB6编译错误:未定义用户定义的类型

  10. 10

    Visual Basic 6-编译错误:未定义用户定义的类型

  11. 11

    如何修复编译错误:从Outlook使用Excel VBA时未定义用户定义类型?

  12. 12

    什么是“未定义编译错误用户定义类型”?

  13. 13

    Visual Basic 6-编译错误:未定义用户定义的类型

  14. 14

    问题与 VBA 代码抛出“用户定义类型未定义”错误

  15. 15

    类型按钮的setonclickListener错误未定义

  16. 16

    未定义类型对象错误的方法

  17. 17

    AnyLogic getHomeLocation()错误“类型未定义”

  18. 18

    对于类型错误,未定义findViewById

  19. 19

    AJAX 类型错误:查询未定义

  20. 20

    类型错误:this.getResults(...) 未定义

  21. 21

    未定义的元组的python类型错误

  22. 22

    解决类型错误:事件未定义

  23. 23

    Excel VBA宏:未定义用户定义的类型

  24. 24

    未捕获的类型错误:无法读取 backend.js 中未定义的属性“绑定”

  25. 25

    错误类型错误:无法设置未定义的属性“用户名”

  26. 26

    类型错误:arrayal[i] 未定义但已定义

  27. 27

    我在哪里放置 defuse 库,以避免调用未定义的方法?

  28. 28

    未定义数组的 JSON.parse 回退以避免异常

  29. 29

    Flight Framework如何避免未定义的索引错误

热门标签

归档