Один из вариантов заключается в равномерном балансе белых полей с обеих сторон данных с использованием .CenterHorizontally, например:
Sub generatepdf()
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesTall = False
.FitToPagesWide = 1
.LeftMargin = Application.CentimetersToPoints(0)
.RightMargin = Application.CentimetersToPoints(0)
.CenterHorizontally = True
.CenterVertically = True
End With
Range("b3:j43").ExportAsFixedFormat xlTypePDF, Filename:=Range("c11").Value & "-" & Range("c16").Value, openafterpublish:=True
End Sub
Другой вариант, если данные не меняют ширину, использовать. Увеличьте и настройте ширину вручную. Как я не вижу VBA, обеспечивающей доступ к любому более тонкому контролю, чем этот. Приветствия.