首页 > 解决方案 > 在发送电子邮件之前隐藏 Word 表单的提交按钮

问题描述

我一直在构建一个表格,以使日常任务更快更容易。Word 表单允许我为每个人填写信息,我在底部有一个“提交”按钮:

我遇到的问题是我似乎无法集成代码以在表单转换为 pdf 并附加之前从表单中删除提交按钮。这对我来说只是强迫症清洁的事情。任何帮助将不胜感激,因为 vba 不是我最强大的套件。

Sub CommandButton1_Click()

    Dim OL                  As Object
    Dim EmailItem           As Object
    
    'Delcared Variables for Signature from Outlook to include images
    Dim strSignature        As String
    Dim sPath               As String
    Dim signImageFolderName As String
    Dim completeFolderPath  As String
    
    'Code needed to convert WORD file to PDF in prep for attaching to email
    strFileName = Replace(ActiveDocument.FullName, ".docm", ".pdf")
    ActiveDocument.ExportAsFixedFormat OutputFileName:=strFileName, _
        ExportFormat:=wdExportFormatPDF
    
    Application.ScreenUpdating = False
    'Setting up Outlook to produce the email
    Set OL = CreateObject("Outlook.Application")
    Set EmailItem = OL.CreateItem(0)
    
    'The main body text of the email, configured in HTML format
    strbody = "See Attached!<br><br>" & "<B>Thank You!</B><br><br>"
    
    'Gaining folder path to Outlook Signature and Signature image folder (specific to user folder and name of Outlook Signature
    sPath = Environ("appdata") & "\Microsoft\Signatures\Main.htm"
    signImageFolderName = "Main_files"
    completeFolderPath = Environ("appdata") & "\Microsoft\Signatures\" & signImageFolderName
    
    If Dir(sPath) <> "" Then
        strSignature = GetSignature(sPath)
        strSignature = VBA.Replace(strSignature, signImageFolderName, completeFolderPath)
    Else
        strSignature = ""
    End If
    
    'Establishing email
    With EmailItem
        .To = ""
        .CC = ""
        .Subject = "FPE Daily Priorities"
        .HTMLBody = strbody & "<br>" & strSignature
        .Importance = olImportanceNormal
        .Attachments.Add strFileName
        '.Send
        .Display
    End With
    Kill strFileName
    Set OL = Nothing
    Set EmailItem = Nothing
End Sub

标签: vbams-word

解决方案


您可以将 ActiveX 按钮格式化为隐藏文本以使其消失。将按钮包裹在书签中以便于访问:

ActiveDocument.Bookmarks("SubmitButton").Range.Font.Hidden = True

作为替代方案,您可以添加一个运行提交宏的文档级 QAT 按钮。然后它根本不会出现在页面上。


推荐阅读