es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

VBA Word Ocultar botón al imprimir un documento.

He creado un botón de comando que ejecuta una macro de VBA al hacer clic en él. Hasta ahora funciona bien. Sin embargo, necesito cambiarlo para que sea invisible al imprimir el documento, pero solo mientras se imprime. Me gustaría hacer esto utilizando VBA, pero no encuentro la forma correcta. No es una forma en línea; lo he cambiado para poder moverlo a cualquier posición en el documento. He probado el siguiente código para ocultarlo durante la impresión:

Private Sub ReplaceButton_Click()
  With ActiveDocument
    .Shapes(1).Visible = msoFalse
    .PrintOut Background:=False
    ' También he probado solo ".PrintOut" en lugar de ".PrintOut Background:=False"
    .Shapes(1).Visible = msoTrue
  End With
  Call replace
End Sub

Pero esto termina imprimiendo el documento (excepto el botón) cada vez que hago clic en el botón, y definitivamente no es lo que quiero.

¿Cómo puedo solucionar este problema?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para solucionar este problema, puedes utilizar el evento DocumentoAntesDeImprimir para ocultar el botón de comando mientras se imprime el documento. Este evento se activa justo antes de que el documento se imprima, por lo que puedes utilizarlo para ocultar el botón y luego hacerlo visible nuevamente después de que se complete la impresión. Aquí tienes un ejemplo de código:

    Private Sub DocumentoAntesDeImprimir(Cancel As Boolean)
        ActiveDocument.Shapes(1).Visible = msoFalse
    End Sub
    
    Private Sub DocumentoDespuésDeImprimir(Cancel As Boolean)
        ActiveDocument.Shapes(1).Visible = msoTrue
    End Sub
    

    Con este código, el botón de comando se ocultará antes de la impresión y se mostrará nuevamente después de imprimir. Puedes agregar tanto los eventos DocumentoAntesDeImprimir como DocumentoDespuésDeImprimir al módulo ThisDocument de tu documento de Word. Ten en cuenta que esto se aplicará a todas las copias impresas del documento, no solo a aquella que contiene el código VBA.

Comments are closed.