【问题标题】:How to insert a content control checkbox into an Outlook task using Word VBA?如何使用 Word VBA 将内容控制复选框插入到 Outlook 任务中?
【发布时间】:2020-10-16 12:39:53
【问题描述】:

我想为现有任务添加一个可用的复选框(内容控件?),例如子任务列表,只需选中即可。

在 Outlook 中,我引用了 Microsoft Word 16.0 对象库,并尝试了 http://www.vboffice.net/en/developers/use-word-macro-in-outlook/https://www.slipstick.com/developer/word-macro-apply-formatting-outlook-email/ 的建议,但没有成功。

我试过了

Option Explicit

Public Sub Checkbox()
    Dim objItem As Object
    Dim objInsp As Outlook.Inspector
    
    ' Add reference to Word library
    ' in VBA Editor, Tools, References
    Dim objWord As Word.Application
    Dim objDoc As Word.Document
    Dim objSel As Word.Selection
    On Error Resume Next
   
    ' Reference the current Outlook item
    Set objItem = Application.ActiveInspector.CurrentItem
    If Not objItem Is Nothing Then
        If objItem.Class = olMail Then
            Set objInsp = objItem.GetInspector
            If objInsp.EditorType = olEditorWord Then
                Set objDoc = objInsp.WordEditor
                Set objWord = objDoc.Application
                Set objSel = objWord.Selection


            ' Formatting code goes here
            Selection.Range.ContentControls.Add (wdContentControlCheckBox)

            End If
        End If
    End If
    
    Set objItem = Nothing
    Set objWord = Nothing
    Set objSel = Nothing
    Set objInsp = Nothing
End Sub

我也试过

Public Sub Check2()
    Dim Ins As Outlook.Inspector
    Dim Document As Word.Document
    Dim Word As Word.Application
    Dim Selection As Word.Selection

    Set Ins = Application.ActiveInspector
    Set Document = Ins.WordEditor
    Set Word = Document.Application
    Set Selection = Word.Selection

    Selection.Range.ContentControls.Add (wdContentControlCheckBox)

End Sub

我记得第一个没有做任何事情。

第二个显示

运行时错误“445”。
对象不支持此操作

【问题讨论】:

    标签: vba outlook ms-word


    【解决方案1】:

    您的 VBA 代码可以正常工作:

    Public Sub Check2()
      Dim Ins As Outlook.Inspector
      Dim Document As Word.Document
      Dim Word As Word.Application
      Dim Selection As Word.Selection
    
      Set Ins = Application.ActiveInspector
      Set Document = Ins.WordEditor
      Set Word = Document.Application
      Set Selection = Word.Selection
    
      Selection.Range.ContentControls.Add (wdContentControlCheckBox)
    
    End Sub
    

    您只需添加对 Word 对象库的引用(工具 -> 引用):

    【讨论】:

    • 谢谢。这对我不起作用。我想知道我的设置是否不同?这是我所做的:
      我打开了 Outlook 开发人员选项卡弹出窗口 - 单击启用宏工具 -> 参考
      我不知道如何添加图像,但它看起来与 Eugene 的完全一样
      打开了一个新任务开发人员选项卡宏下拉 Project1.Check2
      这是相同的“Check2”
      我得到运行时错误“445”“对象不支持此操作
    • 我撰写了一封新电子邮件并尝试运行此宏,它成功了。但是从新任务运行它会出错。
    • 我正在查看 OlObjectClass 枚举 (Outlook),想知道是否应该在某处使用 olTask​​?
    猜你喜欢
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多