1

特定の JPEG (または GIF または BMP) に対して VBA を使用して、PDF に印刷し、印刷前にページ サイズを設定します。私はいくつかの異なる印刷方法を見てきましたが、それらのどれも私が望むことを行うことができないようです:

  • Acrobat SDK を使用してAVDoc.Open()AVDoc.GetPDDoc()、およびPDDoc.Save()を呼び出します : このメソッドを使用してページ サイズを選択することはできません

  • WinAPI 関数SetDefaultPrinterと を宣言し、プリンターを PDF プリンター ドライバーに設定するためShellExecuteに使用SetDefaultPrinterしてから、 を呼び出しますShellExecute(1,"print",filepath,"",rootdirectory,1)。この方法でもページ サイズを設定する方法が見つかりませんでした

ページ サイズは、たとえば、Office ドキュメント オブジェクトに関連付けられたメソッドを使用して設定できますWorksheet.PageSetup.PaperSize = xlPaper11x17が、これは印刷する JPEG ではなく、そのオブジェクトのページ サイズのみを設定します。

4

1 に答える 1

1

Excel ワークブックにインポートして、そこから印刷するだけです。初歩的な例を次に示します。

Dim ws As Worksheet
Dim pic As Picture

Set ws = ActiveSheet
ws.PageSetup.PaperSize = xlPaperA4
'Can also specify margins, etc.

ws.Range("A1").Activate
Set pic = ws.Pictures.Insert("C:\mypic.jpg")   
'Set picture size.
With pic.ShapeRange
    .LockAspectRatio = msoFalse
    .Height = Application.CentimetersToPoints(20)
    .Width = Application.CentimetersToPoints(15)
    'Or you could match the size to the paper margins from above.
End With

ws.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\mypic.pdf", OpenAfterPublish:=True

Excel 2010 でテスト済み。

于 2012-09-07T08:28:56.757 に答える