このVBAマクロは、Excelでアクティブになっているシート(現在選択されているシート)をPDFファイルとして保存する機能を提供します。
使用技術
- VBA (Visual Basic for Applications): Excelを含むMicrosoft Officeアプリケーションのプログラミング言語。
- ActiveSheetオブジェクト: Excelで現在選択されている、または作業中のシートを参照します。
- Application.GetSaveAsFilenameメソッド: ファイル保存ダイアログボックスを表示し、ユーザーにファイルの保存場所と名前の指定を求めます。このメソッドは、ユーザーが指定したパスを文字列で返します。
- ExportAsFixedFormatメソッド: シートやワークブックをPDFやXPS形式で保存するために使用されます。この例では、アクティブなシートをPDF形式で保存しています。
- Type:=xlTypePDF: ExportAsFixedFormatメソッドの引数で、出力形式をPDFに指定しています。
- Filename: 保存するファイルのパスと名前を指定します。
- Quality:=xlQualityStandard: 出力されるPDFの品質を標準品質に指定します。
- IncludeDocProperties:=True: ドキュメントのプロパティ(著者、タイトルなど)をPDFに含めるかどうかを指定します。
- IgnorePrintAreas:=False: シートの印刷範囲設定を無視せず、設定されている印刷範囲に従ってPDFを生成します。
- OpenAfterPublish:=True: PDFファイルを保存後に自動的に開くかどうかを指定します。
機能
- PDFファイル名を”ActiveSheetAsPDF.pdf”として事前に設定。
- ユーザーにPDFの保存場所を選択させるためのダイアログボックスを表示。
- ユーザーが保存ダイアログでキャンセルした場合、マクロの実行を中断。
- ユーザーが保存場所を選択し、キャンセルしなかった場合に限り、アクティブなシートをPDF形式で保存。
- 保存時の設定には、標準品質での出力、ドキュメントプロパティの含め方、印刷範囲の無視の有無、保存後のPDFの自動開封を含む。
ソースコード
VB
Sub SaveActiveSheetAsPDF()
Dim pdfName As String
Dim pdfPath As String
' PDFファイルの名前と保存パスを設定
pdfName = "ActiveSheetAsPDF.pdf"
pdfPath = Application.GetSaveAsFilename(pdfName, "PDF Files (*.pdf), *.pdf", , "PDFに保存")
' ユーザーがキャンセルした場合は処理を中断
If pdfPath = "False" Then Exit Sub
' アクティブなシートをPDFとして保存
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
ワークブックの全シートをPDFに統合保存する方法は別のページで紹介しています。
使い方
- Excelを開く: まず、Microsoft Excelを開いて、PDFに変換したいシートが含まれるワークブックを開きます。
- VBAエディタを開く:
Alt + F11
キーを押してExcelのVBAエディタを開きます。 - 新しいマクロを挿入: VBAエディタで、挿入メニューから「モジュール」を選択して新しいモジュールを挿入します。
- コードを貼り付け: コードを新しいモジュールウィンドウに貼り付けます。
- マクロを実行:VBAエディタ内で、マクロの名前を選択し、
F5
キーを押すか、ツールバーの実行ボタンをクリックしてマクロを実行します。 - 保存場所を選択: 実行すると、ファイル保存ダイアログが表示され、PDFファイルの保存場所とファイル名を選択します。
- PDF保存の完了: 適切な場所とファイル名を選択して「保存」をクリックすると、アクティブなシートがPDFファイルとして保存されます。もし保存ダイアログでキャンセルを選択した場合は、マクロの実行が中断されます。
コメント