zoukankan      html  css  js  c++  java
  • word导入导出自定义属性列表

    Sub ExportCustom()
    '
    ' ExportCustom 宏
    ' 导出自定义属性到custom.txt
    '
        Dim lFileNumber As Long
        Dim sFilePath As String
        Dim current As Object
        Set current = ActiveDocument
        sFilePath = current.Path + "Custom.txt"
        lFileNumber = FreeFile()
        Open sFilePath For Output As #lFileNumber
        Dim i As Integer
        For Each objProp In current.CustomDocumentProperties
            Dim bRegular As Boolean
            bRegular = True
            If objProp.Name = "ProprietaryDeclaration" Then
                bRegular = False
            End If
            If objProp.Name = "slevel" Then
                bRegular = False
            End If
            If objProp.Name = "slevelui" Then
                bRegular = False
            End If
            If objProp.Name = "sflag" Then
                bRegular = False
            End If
            If bRegular Then
                Print #lFileNumber, objProp.Name & vbTab & objProp.Value
            End If
        Next
        
        Close #lFileNumber
        MsgBox "导出完毕!"
    End Sub
    Sub UpdateCustom()
    '
    ' UpdateCustom 宏
    '
    '
        Dim strUpdateContent As String
        Dim strNotFoundProperty  As String
        
    
        Dim current As Object
        Set current = ActiveDocument
        Dim lFileNumber As Long
        lFileNumber = FreeFile()
        Open current.Path + "Custom.txt" For Input As #lFileNumber ' 打开文件。
        Dim TextLine As String
        Dim tmpObj As Object
        Dim iTabIndex As Integer
        Do While Not EOF(lFileNumber) ' 循环至文件尾。
            Line Input #lFileNumber, TextLine ' 读入一行数据并将其赋予某变量。
            
            If Not (TextLine = "") Then
                    
                iTabIndex = InStr(TextLine, vbTab)
                If Not (iTabIndex = 0 Or iTabIndex = 1 Or iTabIndex = Len(TextLine)) Then
                    
                    Dim strName As String
                    Dim strValue As String
                    
                    strName = Mid(TextLine, 1, iTabIndex - 1)
                    Debug.Print strName ' 在调试窗口中显示数据。
                    strValue = Mid(TextLine, iTabIndex + 1)
                    Debug.Print strValue ' 在调试窗口中显示数据。
                    
                    On Error Resume Next
                    Set tmpObj = Nothing
                    Set tmpObj = current.CustomDocumentProperties(strName)
                    On Error GoTo 0
                    If Not (tmpObj Is Nothing) Then
                        If (tmpObj.Type = msoPropertyTypeString And (Not (tmpObj.Value = strValue))) Then
                            strUpdateContent = strUpdateContent & vbCrLf & tmpObj.Name & vbTab & tmpObj.Value & "==>>" & strValue
                            tmpObj.Value = strValue
                        End If
                    Else
                        strNotFoundProperty = strNotFoundProperty & vbCrLf & strName
                    End If
                End If
            
            End If
            
        Loop
    
        Dim strMsg As String
        If Not (strUpdateContent = "") Then
            strMsg = strMsg & "Update content:" & strUpdateContent
        End If
        
        If Not (strNotFoundProperty = "") Then
            strMsg = strMsg & "Not found property:" & strNotFoundProperty
        End If
        
        If (strMsg = "") Then
            strMsg = "No Update"
        End If
        
    
        MsgBox strMsg
    
    End Sub
    
    Sub SortCustom()
    '
    ' SortCustom 宏
    '
    '
        Dim current As Object
        Set current = ActiveDocument
        sFilePath = current.Path + "Custom.txt"
        Dim propertys() As Object
        'Set propertys = current.CustomDocumentProperties
        Dim iPropLen As Integer
        iPropLen = current.CustomDocumentProperties.Count
        Dim i As Integer
        Dim iTmpPropLen As Integer
        iTmpPropLen = iPropLen
        Dim bFlag As Boolean
        bFlag = True
        Do While bFlag And iTmpPropLen > 1
            bFlag = False
            For i = 1 To (iTmpPropLen - 1)
                If current.CustomDocumentProperties(i).Name > current.CustomDocumentProperties(i + 1).Name Then
                    bFlag = True
                    
                    Dim tmpProp1 As Object
                    Set tmpProp1 = current.CustomDocumentProperties(i)
                    Dim tmpProp2 As Object
                    Set tmpProp2 = current.CustomDocumentProperties(i + 1)
                    
                    Dim tmpPropName As String
                    Dim tmpPropType As Integer
                    Dim tmpPropLinkToContent As Boolean
                    Dim tmpPropValue As String
                    tmpPropName = tmpProp1.Name
                    tmpPropType = tmpProp1.Type
                    tmpPropLinkToContent = tmpProp1.LinkToContent
                    tmpPropValue = tmpProp1.Value
                    tmpProp1.Name = "tmp"
                    tmpProp1.Type = msoPropertyTypeString
                    tmpProp1.LinkToContent = False
                    tmpProp1.Value = "tmp"
                    
                    Dim tmpPropName2 As String
                    Dim tmpPropType2 As Integer
                    Dim tmpPropLinkToContent2 As Boolean
                    Dim tmpPropValue2 As String
                    tmpPropName2 = tmpProp2.Name
                    tmpPropType2 = tmpProp2.Type
                    tmpPropLinkToContent2 = tmpProp2.LinkToContent
                    tmpPropValue2 = tmpProp2.Value
                    tmpProp2.Name = tmpPropName
                    tmpProp2.Type = tmpPropType
                    tmpProp2.LinkToContent = tmpPropLinkToContent
                    tmpProp2.Value = tmpPropValue
                    
                    tmpProp1.Name = tmpPropName2
                    tmpProp1.Type = tmpPropType2
                    tmpProp1.LinkToContent = tmpPropLinkToContent2
                    tmpProp1.Value = tmpPropValue2
                End If
            Next
            iTmpPropLen = iTmpPropLen - 1
        Loop
        
        
        MsgBox "排序完毕!"
    End Sub
  • 相关阅读:
    vue 表单 enter 键触发默认事件
    img找不到图片时,去除默认边框
    Javascript 计算
    Azure 上SQL Database(PaaS)Time Zone时区问题处理
    c#: 颜色选择控件之实现
    hive建库,建表,删表,删库,添加静或动态分区
    仿写一个 nodejs 中 queryString 的 parse 方法
    数独小游戏
    tnpm
    《翻页时钟特效》或者《日历翻页效果》的 css 部分原理实现
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/4141550.html
Copyright © 2011-2022 走看看