Olá Julio Cezar Francisco Martin,
Obrigada por realizar a sua pergunta utilizando a Plataforma Q&A da Microsoft.
O método PrintForm
no VBA é usado para enviar uma imagem bit a bit de um objeto UserForm
para a impressora. No entanto, como você mencionou, o formulário fica pela metade quando você gera um PDF com um print screen do formulário.
Aqui estão algumas considerações e possíveis soluções para o seu problema:
Tamanho do Formulário:
O tamanho do seu formulário pode estar causando o problema. Se o formulário for muito grande para caber em uma única página, ele pode ser cortado ao gerar o PDF.
Verifique se o tamanho do seu formulário se ajusta corretamente à página de impressão.
**Opções Alternativas:**
Em vez de usar o método **`PrintForm`**, considere outras opções para gerar o PDF completo:
**Exportar para Imagem:** Você pode exportar o formulário como uma imagem (por exemplo, BMP ou PNG) e, em seguida, converter essa imagem em PDF.
**Usar Bibliotecas Externas:** Existem bibliotecas externas (como o **`PDFCreator`**) que permitem criar PDFs diretamente a partir do VBA.
**Código de Exemplo:**
Aqui está um exemplo de como salvar um **`UserForm`** como PDF usando a biblioteca **`PDFCreator`**:
```vba
Sub SalvarComoPDF()
Dim pdfJob As Object
Set pdfJob = CreateObject("PDFCreator.JobQueue")
' Abra o UserForm
UserForm1.Show
' Capture o conteúdo do UserForm como imagem
UserForm1.PrintForm
' Salve a imagem como PDF
pdfJob.ConvertTo ("C:\Caminho\Para\Salvar\Seu\PDF.pdf")
' Feche o UserForm
Unload UserForm1
End Sub
```
**Ajuste de Configurações de Impressora:**
Certifique-se de que a impressora padrão esteja configurada corretamente no seu sistema operacional.
Selecione uma impressora ativa antes de usar o método **`PrintForm`**.
Lembre-se de adaptar o código acima às suas necessidades específicas.
Atenciosamente,