You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VBA为Word文档设置Azure敏感度标签及获取标签ID

解决方法

步骤1:获取你的Azure敏感度标签ID

你可以直接通过本地Word快速获取目标标签的ID:

  1. 手动新建一个Word文档,手动添加上你要设置的Azure敏感度标签
  2. 按Alt + F11打开VBA编辑器,按Ctrl + G调出立即窗口
  3. 输入以下代码后按回车,即可在立即窗口看到所有标签相关属性,其中MSIP_Label_和下一个_之间的字符串就是你的标签ID
For Each prop In ActiveDocument.CustomDocumentProperties: If Left(prop.Name, 10) = "MSIP_Label" Then Debug.Print prop.Name & ": " & prop.Value: Next

步骤2:VBA添加标签的语法规则

Azure敏感度标签需要配套设置4个自定义文档属性,不能只添加单个Enabled属性,属性规则如下:

  • 属性名统一格式:MSIP_Label_<替换为你的标签ID>_<属性后缀>
  • 必选属性后缀及对应值:
    • Enabled:值为True,属性类型为4(即msoPropertyTypeBoolean)
    • SetDate:值为当前时间的ISO格式字符串,示例:Format(Now(), "yyyy-mm-ddThh:mm:ssZ")
    • Method:固定值为Standard
    • Name:值为你的敏感度标签的实际显示名称

步骤3:修改后的完整代码

Function ExportWordDocument()
    Dim objword, wshshell, objdoc, objselection, objshape, i
    Dim labelID, labelName, prop
    ' 请替换为你第一步获取到的标签ID和标签显示名称
    labelID = "替换为你的实际标签ID"
    labelName = "替换为你的实际标签显示名称"
    
    Set objword = CreateObject("word.application")
    objword.Visible = True
    objword.DisplayAlerts = False
    
    Set objdoc = objword.Documents.Add()
    Set objselection = objword.Selection
    Set objshape = objdoc.Shapes
    
    ' 先删除已存在的同名标签属性,避免添加报错
    On Error Resume Next
    For Each prop In objdoc.CustomDocumentProperties
        If InStr(prop.Name, "MSIP_Label_" & labelID) > 0 Then
            prop.Delete
        End If
    Next
    On Error GoTo 0
    
    ' 批量添加4个必填的标签属性
    objdoc.CustomDocumentProperties.Add "MSIP_Label_" & labelID & "_Enabled", True, 4, True
    objdoc.CustomDocumentProperties.Add "MSIP_Label_" & labelID & "_SetDate", True, 3, Format(Now(), "yyyy-mm-ddThh:mm:ssZ")
    objdoc.CustomDocumentProperties.Add "MSIP_Label_" & labelID & "_Method", True, 3, "Standard"
    objdoc.CustomDocumentProperties.Add "MSIP_Label_" & labelID & "_Name", True, 3, labelName
    
    Dim objscreenshotsfolder, objscreenshot
    objscreenshotsfolder = Environment.Value("respath")
    For i = Environment.Value("snapshotNoNext") To Environment.Value("snapshotno") Step 1
        objscreenshot = "Screenshot_" & i & ".bmp"
        objselection.TypeText objscreenshot
        objselection.InlineShapes.AddPicture (objscreenshotsfolder & "\" & objscreenshot)
        objselection.TypeParagraph
    Next

    objdoc.SaveAs2 Environment.Value("respath") & "\" & Environment.Value("testCaseId") & "_screenshots.doc"
    objdoc.Close False
    objword.Quit
    Set objword = Nothing
End Function

注意事项

  • 代码中labelID和labelName必须替换为你自己租户的实际标签值,否则标签不会生效
  • 如果你的企业标签配置了额外的属性要求,可以通过步骤1的方法查看手动添加标签的文档所有属性,对照补充到代码中即可

内容的提问来源于stack exchange,提问作者suvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:06:04