打印时隐藏Command Button且保留公司Logo可见的技术方案咨询
解决方案:打印时隐藏命令按钮但保留Logo可见
核心问题
你的问题出在命令按钮与插入的Logo未完全分离,导致隐藏按钮时连带隐藏了Logo。默认情况下,若按钮与Logo处于同一组或按钮的事件逻辑无意中关联了Logo的可见性,就会出现这个问题。
两种可行方案
方案1:直接设置按钮的打印隐藏属性(无需额外代码)
这是最简单的方法,无需编写事件代码:
- 右键你的命令按钮 → 选择属性
- 在属性窗口中找到
PrintObject选项,将其值改为False - 保存设置后,打印文档时按钮会自动隐藏,而Logo作为独立形状不受影响
方案2:用VBA事件控制按钮可见性(更灵活)
如果需要更复杂的逻辑(比如仅在特定条件下隐藏按钮),可以通过Word的打印前后事件实现:
步骤1:修改插入Logo的代码(确保Logo独立)
确保插入的Logo是完全独立的文档形状,避免与按钮关联:
Dim oShp As Shape ' 选择并插入图片 With Application.FileDialog(msoFileDialogFilePicker) .Title = "选择图片文件后点击确定" .Filters.Add "图片文件", "*.gif; *.jpg; *.jpeg; *.bmp; *.tif; *.png" .FilterIndex = 2 If .Show = -1 Then ' 插入独立的Logo形状 Set oShp = ActiveDocument.Shapes.AddPicture( _ FileName:=.SelectedItems(1), _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=5, _ Top:=12) With oShp .LockAspectRatio = msoCTrue .Width = InchesToPoints(2) .Name = "CompanyLogo" ' 给Logo命名,方便后续管理 End With End If End With
步骤2:添加打印事件代码
打开Word的VBA编辑器(Alt+F11),找到ThisDocument模块,粘贴以下代码:
' 打印前隐藏按钮 Private Sub DocumentBeforePrint(Cancel As Boolean) ' 替换成你的命令按钮名称(可在属性窗口查看Name属性) ActiveDocument.Shapes("CommandButton1").Visible = msoFalse End Sub ' 打印完成后恢复按钮显示 Private Sub DocumentAfterPrint() ActiveDocument.Shapes("CommandButton1").Visible = msoTrue End Sub
注意事项
- 确认你的命令按钮是ActiveX控件而非表单控件,表单控件的属性设置略有不同
- 若之前误将按钮与Logo分组,选中两者后右键→取消组合即可分离
内容的提问来源于stack exchange,提问作者CNA
相关产品推荐
相关产品推荐

