ワークシートをvbaを使用してpdfファイルとして保存しようとしています。ワークシートはA4ページより幅が広く、いくつかの図形が横方向に含まれています。私はワークシートを1つのA4ページに収めたいので、画面に表示されるように再スケーリングする必要があります。私は次のコードを使用しています:ワークシートをPDFで保存します。
Sub Print_PDF()
Dim sFilename As String
Worksheets.Add.Name = "Helpsheet"
sFilename = "G:\anything\test.pdf"
ThisWorkbook.Worksheets("Newsletter").Range("A2:D81").CopyPicture xlScreen, xlBitmap
ThisWorkbook.Sheets("Helpsheet").Activate
ThisWorkbook.Sheets("Helpsheet").Paste
ActiveSheet.PageSetup.PrintArea = ThisWorkbook.Sheets("Helpsheet").Range("A1:O86")
With ActiveSheet.PageSetup
.Orientation = xlPortrait
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
ThisWorkbook.Sheets("Helpsheet").ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFilename, quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Helpsheet").Delete
Application.DisplayAlerts = True
End Sub
コードは実際には、期待される場所にPDFファイルを保存します。ただし、PDFファイルは予想される1ページの代わりに4ページです。したがって、printareaは正しく定義されていないようです。私は間違って何をしていますか?
ズームをfalseに設定すると、トリックがかかりました。私の一日を保存してくれてありがとう! – Roosz0rd