2011-10-26 16 views
4

ExcelのPDFとしてワークブック全体を保存することはできますか?私はこれを見つけました、http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx、それは正確にあなたがpdfまたはアクティブシートだけとしてブック全体を保存するかどうかを教えてくれません。ワークブック全体をpdfに保存する方法がない場合、ワークブック全体を印刷するのが最善の選択肢ですか、あるいはC#でも可能ですか?以下は私がこれまでに持っていたものですが、私は電子メールで送ることができるようにpdfとして保存するだけです。助けてくれてありがとう。全体のワークブックをPDFとして保存Excel 2010(C#)

using Excel = Microsoft.Office.Interop.Excel; //Excel Reference 

//Gets Excel and gets Activeworkbook and worksheet 

Excel.Application oXL; 
Excel.Workbook oWB; 
Excel.Worksheet oSheet; 

//Create New Instance in Excel 
oXL = new Excel.Application(); 
oXL.Visible = true; 

//Open Excel Workbook 
oWB = oXL.Workbooks.Open(""); 
oWB = (Excel.Workbook)oXL.ActiveWorkbook; 
oSheet = (Excel.Worksheet)oWB.ActiveSheet; 

//Modify Excel Spreadsheet Based on Form 
oSheet.Cells[6, 4] = maskedTextBox1.Text; //Change Value in Cell, Cell Location [y-axis, x-axis] 

//Save Workbook As 
oWB.SaveAs(""); 

//Save Workbook As PDF 


//Close Workbook 
oWB.Close(""); 

//Quit Excel 
oXL.Quit(); 

答えて

6

2010年には、各シートを「アクティブ」シートにすることでブック全体をPDFに保存できます。 奇妙に聞こえますが、PDFを作成するときに印刷オプションに気付くと、ブックのオプションはありません。これを回避するには、Excelファイルを開き、2〜3枚のワークシートにいくつかのデータを記入してください。 ctrlキーを押したまま、他のワークブックをクリックすると、「グループ」になります。

[GROUP]の名前がExcelファイルの上部に表示され、Excelファイルを印刷するとワークブック全体が印刷されるようになります。

自分で試してみてください。コードでは、各ワークシートをアクティブなワークシートにするだけです。私はExcelのオブジェクトモデルではあまり動作しませんが、これを行うマクロとコードを見る価値があるかもしれません。

は私がマクロを記録し、ここではVBAです:あなただけの、単に

Sheets(MyArray).Select

この意志を配列内の各シートを格納するために必要があるかのように

Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

が見えますすべてのシートをアクティブにして[グループ化]してから、pdfにプリントアウトすることができます。マクロを記録することによって、それはまた、PDFファイルに印刷するオプションを提示:

`ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "C:\Users\MyAccount\Desktop\test.pdf", Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
    True` 

この場合、アクティブシートにあなたは配列に格納されているシートのあなたのグループです。

+0

私は同じことをしましたhmm kkおそらくカバーリングはおそらく最善のルートだと思います。 –

+0

Russell Saari - これを確認するには、Excelを開いて手動でこれを行うと、何が起こるかがわかります。すべてのシートをアクティブにしない場合、コードは最初のシート(アクティブシート)のみを印刷します。 ctrlキーを使用して各シートをクリックし、Excelファイル(名前領域)の一番上を見ると '[group]'に変わり、pdfとして保存する必要があります。 – JonH

+0

ありがとうございます私はあなたのことを正しいものとして記入します私はほとんどそれが成し遂げられましたそれが大丈夫ならあなたの答えに投稿しますか?\ –

関連する問題