2017-01-10 25 views
-1
ActiveSheet.ExportAsFixedFormat _ 
    Type:=xlTypePDF, _ 
    FileName:="file_path", _ 
    Quality:=xlQualityMinimum, _ 
    IncludeDocProperties:=True, _ 
    IgnorePrintAreas:=False, _ 
    OpenAfterPublish:=False 

VBAを使用してExcelシートをPDFにエクスポートしようとしています。 Excelシートには時系列グラフが表示されます。 VBAによって作成されたPDFは、電子メール(90MB)には大きすぎます。小さなファイルサイズにエクスポートする方法はありますか?私は "xlQualityMinimum"に品質を変更しようとしましたが、ファイルサイズの変更はありませんでした。VBA非常に大きなPDFファイルを作成します。

また、C#でPDFを圧縮することもできます。しかし、私はこれを行うための自由な方法を見つけることができません。 VBAで小さなファイルを出力できない場合は、誰でもC#で圧縮する方法を知っていますか?

+0

これはVBAを使用して圧縮できますか、C#でロールを再生する必要がありますか? – Brad

+0

@Brandon:C#は役割を果たす必要はなく、どちらの言語でも圧縮できます。 – user112947

+0

PDFのページ数はいくつですか? –

答えて

0

すでにVBAを使用している場合、7zipを使用してPDFを圧縮する必要があります。これは無料で、コマンドラインから起動することができます。ここでは、ソースを見つけることができるリンクがあります。 http://www.7-zip.org/

以下のマクロを使用すると、個々のファイルをナビゲートして圧縮することができます。あなたの好みに応じて、あなたのニーズに合うように調整する必要があります。

Sub ZipFiles() 
    Dim src As Variant 
    Dim dst As Variant 
    Dim file As Variant 

    Const PATH_TO_7Z = "C:\Program Files\7-Zip\7z.exe" 

    Set src = CreateObject("Shell.Application").BrowseForFolder(0, "Source folder", &H245) 
    If Not src Is Nothing Then 
     src = src.Self.Path & "\" 

     Set dst = CreateObject("Shell.Application").BrowseForFolder(0, "Destination folder", &H245) 
     If Not dst Is Nothing Then 
     dst = dst.Self.Path & "\" 

     For Each file In CreateObject("Scripting.FileSystemObject").GetFolder(src).Files 
      Shell PATH_TO_7Z & " a -tzip """ & dst & file.Name & ".zip"" """ & file.Path & """" 
     Next 
     End If 
    End If 
End Sub 

ソースフォルダとコピー先フォルダが一定の場合は、このような処理を行うことができます。

Sub ZipFiles() 
    Dim file As Variant 

    Const SOURCE  = "C:\test\source" 
    Const DEST  = "C:\test\destination" 
    Const PATH_TO_7Z = "C:\Program Files\7-Zip\7z.exe" 

    For Each file In CreateObject("Scripting.FileSystemObject").GetFolder(SOURCE).Files 
     Shell PATH_TO_7Z & " a -tzip """ & DEST & "\" & file.Name & ".zip"" """ & file.Path & """" 
    Next 
End Sub 
+0

ありがとうございます。私の言葉の選択(圧縮)は貧弱でした。残念ながら、最終製品はzipファイルではなくPDFファイルである必要があるため、電子メールの添付ファイルをモバイルデバイスで開いて表示することができます。私はPDFの品質を低下させる方法が必要です。 – user112947

関連する問題