PDFとして印刷し、自動でファイル名を付けて保存するExcel VBA

  • これを共有
Hugh West

輸出のメリットは エクセル としてスプレッドシートを作成します。 PDF の文書をPDF形式に変更することで、印刷して様々な仕事上のつながりと共有できるようになります。 PDFは、他の人と共有したり公開する必要性を感じる文書をエクスポートするための信頼できる規格です。 今回は、VBAでPDFとして印刷し、自動ファイル名で保存する例をいくつか示します。

練習用ワークブックをダウンロードする

ワークブックをダウンロードして、一緒に練習することができます。

VBA Print to PDF.xlsm

ExcelでPDFとして印刷し、自動でファイル名を付けて保存するExcel VBAの例9選

ExcelのファイルをPDFとして印刷し、自動的にファイル名を付けて保存することは、Excelのツールバーを使えば簡単にできます。 しかし、もっと簡単に エクセルブイビーエー が必要なだけです。 ブイビーエー 何度もクリックする必要がないので、時間の節約になります。

Visual Basic for Applications ( ブイビーエー ) の中で最もよく見られるプログラミングモデルであり、孤立したプログラムです。 マイクロソフトオフィス 分析ツールであり、多くの場合、以下のように利用できます。 エクセルアドイン また、単調で時間のかかる手作業の最適化も可能です。 シーエスブイ そこで、エクセルファイルを自動でファイル名を付けてPDFとして印刷する例を見てみましょう。

1.ワークブックをPDFに印刷し、Excelで自動的にファイル名を保存する。

例えば、ワークブック全体を印刷し、ファイル名をコードにつけたまま保存したいとします。 では、パソコンにPDFファイルを保存するとします。 ローカルディスク(E:) VBAのコードを実行すると、希望するPDFファイルが表示されます。 PDF のファイルをPCのその場所に置く。

エクセルブイビーエー を使えば、リボンから簡単にExcelのメニューを表示させることができます。 ブイビーエー のコードでpdfを印刷し、自動でファイル名を付けて保存することができますので、手順を追ってみましょう。

STEPS

  • まずは デベロッパー タブをクリックします。
  • 2つ目は、から コード カテゴリーをクリックします。 ビジュアルベーシック を開いてください。 Visual Basic エディター を押すか Alt + F11 を開いてください。 Visual Basic エディター .

  • これを行う代わりに、ワークシート上で右クリックし 表示コード に移動します。 Visual Basic エディター .

  • に表示されます。 Visual Basic エディター ここでは、範囲からテーブルを作成するためのコードを記述します。
  • 3つ目は、「」をクリックすることです。 モジュール から インサート ドロップダウンメニューバー

  • これにより モジュール をワークブックに追加してください。
  • と、コピー&ペーストしてください。 ブイビーエー というコードが表示されます。

VBAコードです。

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • を押して、コードを実行します。 F5 キーボードのキーを押してください。

  • 最後に、PDFのファイル名が表示されることを確認します。 ワークブック がコンピュータ上のそのパスに位置するようになりました。 つまり、ファイル名が自動的に保存されるわけです。

  • 最後に、ワークブックに戻ると、点線が表示されています。 これは、ファイルが印刷できる状態になったからです。

VBAコード説明

 Sub Print_Workbook() 

サブ は、コード内の作業を処理するために使用されますが、値を返しません。 サブプロシジャとも呼ばれます。 そこで、このプロシジャの名前を Print_Workbook() .

 loc = "E:\Workbook.pdf" 

この行では、保存場所とpdfファイル名を指定します。 ここでは、ファイルを E: をコンピュータにインストールし、ファイル名を ワークブック .

 ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF、filename:=loc。 

この行は、エクセルファイルをPDFとして書き出し、印刷できるようにするためのコードです。

 エンド・サブ 

これで手続きは終了です。

続きを読む ハイパーリンクを含むExcelをPDFに書き出す(2つの簡単な方法)

2.アクティブなワークシートを自動的にPDFとして保存する

アクティブなシートをpdfに印刷し、ファイル名を自動的に保存する別の例を見てみましょう。 エクセルブイビーエー .

STEPS

  • まず デベロッパー リボンから[r]タブを選択します。
  • 2つ目は、「」をクリックします。 ビジュアルベーシック を開いてください。 Visual Basic エディター .
  • もうひとつの開き方 Visual Basic エディター を押すだけです。 Alt + F11 .
  • または、シート上で右クリックし 表示コード .
  • 次に、次のページに進みます。 インサート を選択し モジュール をドロップダウン・メニューから選択します。
  • そして、これでビジュアルベーシックのウインドウが開かれます。
  • その後、コピー&ペーストで VBAコード を下回る。

VBAのコードです。

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • を押してください。 F5キー をクリックするか ラン・サブ ボタンをクリックすると、コードが実行されます。

  • 前の例と同様に、ファイルは自動ファイル名でPDFとして保存されます。

を読むと example1 の コード説明で、これも理解できるはずです。

続きを読む Excelマクロ:ファイル名に日付を含むPDFとして保存する(4つの適切な例)

3.ExcelからVBAでPDFファイルを範囲指定で印刷する

Excel VBAを利用して、アクティブなシートをpdfに印刷し、ファイル名を自動的に保存する例をもう一つ見てみましょう。

STEPS

  • をクリックすると開始します。 デベロッパー タブをクリックします。
  • 次に、起動します。 Visual Basic エディター をクリックすると ビジュアルベーシック .
  • または Visual Basic エディター を押して Alt + F11 .
  • あるいは 右クリック を選びます。 表示コード をメニューから選択します。
  • 次に モジュール の下にあるドロップダウン・ボックスから インサート .
  • そして、ビジュアルベーシックのウィンドウが表示されます。
  • そこにコードを書き込む。

VBAのコードです。

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • 最後に F5キー を実行してください。

  • その結果、Workbookという名前のPDFファイルがコンピュータのその場所に追加されたことがわかります。 その結果、ファイル名は自動的に保存されます。

続きを読む ExcelのVBAで範囲をPDFに印刷する(最も簡単な5つの例)

4.選択されたシートをループしてPDFを印刷するExcel VBA

PDFに印刷し、ファイル名を自動的に保存する別の方法について見てみましょう。

STEPS

  • はじめに、リボンを開いて デベロッパー オプションを使用します。
  • そして、アクセスするために Visual Basic エディター をクリックします。 ビジュアルベーシック .
  • プレス加工 Alt + F11 を表示させることもできます。 Visual Basic エディター .
  • あるいは。 右クリック を選択し 表示コード をクリックすると、メニューが表示されます。
  • では、その中から インサート を選択します。 モジュール .
  • 次に、コピーして貼り付けます。 ブイビーエー というコードがあります。

VBAのコードです。

 Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select Wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub. 
  • を押して、コードを実行します。 F5 キーになります。

  • その結果、ファイル名が自動的に保存されます。

これにより、ワークブックのシート番号で保存されます。

VBAコード説明

 For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht 

このforループのコードラインは、エクセルファイルをpdfとしてエクスポートし、そのファイルを印刷するためのものです。

続きを読む Excel VBA: ページにフィットするExportAsFixedFormat PDF (3つの例)

5.エクセルでPDFに印刷し、ファイル名を直感的に保存する

では、別のExcel VBAで、Excelファイルをpdfに保存し、ファイル名を自動で付ける方法を見てみましょう。

STEPS

  • はじめに、リボンを開き、以下を選択します。 デベロッパー をドロップダウン・メニューから選択します。
  • 次に、以下を選択します。 ビジュアルベーシック を開いてください。 Visual Basic エディター .
  • があります。 Visual Basic エディター を押してもアクセスできます。 Alt + F11 .
  • または 右クリック を選択し 表示コード をポップアップメニューから選択します。
  • その後、以下を選択します。 モジュール から インサート のドロップダウン・メニューがあります。
  • さらに、以下のVBAコードをコピー&ペーストしてください。

VBAのコードです。

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStandard, _ From:=1, To:=2 End Sub... 
  • 最後に、コードを実行するには F5 をキーボードで入力すると、その結果が表示されます。

  • その後、a ワークブック PDF その結果、ファイル名は自動的に保持されます。

これも先ほどの例と同様に、pdfファイルをシート番号で保存します。

VBAコード説明

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF、filename:=loc、OpenAfterPublish:=False、IncludeDocProperties:=True、IgnorePrintAreas:=False、Quality:=xlQualityStandard、From:=1、To:=2 

コードブロックは、エクセルファイルを印刷し、pdfとして保存するためのものです。

続きを読む ExcelのVBAを使ってPDFやメールに印刷する(2つの便利なケース)

6.PDFを印刷し、ファイル名を自動保存するVBA関数

PDFに印刷し、ファイル名を自動的に保存するExcel VBAの別の方法を探ってみましょう。 この例では、関数を使用してファイルをPDFに保存します。 また、この例では メッセージボックス をクリックすると、ファイルが保存されたかどうかのメッセージが表示されます。

STEPS

  • はじめに デベロッパー tab> ビジュアルベーシック > インサート > モジュール .
  • あるいは 右クリック をクリックすると、ウィンドウが表示されます。 表示コード .
  • そして、これで Visual Basic エディター のフィールドで、次のように書くことができます。 VBAマクロ .
  • 逆に Alt + F11 を開くこともできます。 Visual Basic エディター .
  • その後で、次のように入力します。 ブイビーエー のコードになります。

VBAのコードです。

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc &"\" snam = wrks.Range("A1").Value & "Print " &.Long" Set wrkb = ActiveSheet Sloc = Sloc = "A2", "︖"︖"︖WPRF↩", "︖"; "L";wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="ファイル名を保存する") If myFile "False" Then slocf = myFile Else GoTo exitHandler End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: 終了サブ errHandler: MsgBox "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =CBool(Len(Dir$(rsFullPath))> 0) End Function 
  • そして、その結果を確認するために、コードを実行します。 F5キー .

  • に表示されます。 メッセージボックス をクリックして、PDFファイルが印刷できる状態になったことを確認してください。

  • 前回と同様に、WorkbookのPDFファイルは、すでにコンピュータのその場所に保存されていることがわかります。 そのため、デフォルトでファイル名が保存されています。 ファイル名を設定する際に PDFを印刷する ファイル名が保存されます。 プリント PDFをご覧ください。

前のコードの説明を見れば、コードの行を正しく理解できると思います。 コードを変更する必要はなく、好みに応じて範囲を変更するだけです。 コードをコピーして、あなたの作業目的に使用することができます。

続きを読む セルの値からファイル名を指定してPDF保存するExcelマクロ(2例)

7.自動的にPDFに印刷し、ファイル名を保存するExcel VBAコード

PDFへの印刷とファイル名の自動保存を行う別のExcel VBAの方法について見てみましょう。

STEPS

  • はじめに デベロッパー タブをクリックします。
  • 次に、「コード」セクションで、以下を選択します。 ビジュアルベーシック を起動します。 Visual Basic エディター を開くには Visual Basic エディター をクリックします。 Alt + F11 .
  • または、ワークシート上で右クリックし、次の項目を選択します。 表示コード をクリックします。 Visual Basic エディター もあります。
  • に表示されます。 Visual Basic エディター で、範囲から表を生成するコードを書きます。
  • 3つ目は、挿入のドロップダウンメニューバーから、以下を選択します。 モジュール .
  • と、コピー&ペーストしてください。 ブイビーエー というコードが表示されます。

VBAのコードです。

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc &"\" snam = wrksht.Range("A1").Value & " - " &.All rights reserved;wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: 終了 サブ errHandler: MsgBox "Not Print" レジューム。exitHandler End Sub 
  • をクリックし、コードを実行します。 RubSub ボタンを押すか F5 キーボードショートカット

  • 特に、その後 メッセージボックス が表示されます。

  • と同じ自動ファイル名でPDFとして保存されます。

VBAコード説明

 sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value. 

これらは、ワークブックが保存された場合に、アクティブなワークブックフォルダを取得するためのものです。

 sf = snam & ".pdf" slocf = sloc & sf 

これにより、ファイルを保存する際のデフォルトの名前が作成されます。

 wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=Falseを指定します。 

このブロックは、エクセルファイルをカレントフォルダ内のPDFに書き出すだけです。

 MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler 

これにより、Microsoft Excelのファイル情報を含む確認メッセージを見ることができます。

続きを読む ExcelのマクロボタンでPDFに印刷する(マクロ5種)

8.自動ファイル名で特定のエクセルシートを印刷する

PDFへの印刷とファイル名の自動保存を行う別のExcel VBAの方法について見てみましょう。

STEPS

  • を選択します。 デベロッパー タブをクリックします。
  • 第二に、以下の通りです。 コード カテゴリーを選択します。 ビジュアルベーシック を起動します。 Visual Basic エディター または、 を押してください。 アルト + F11 を起動します。 Visual Basic エディター .
  • 代わりに、ワークシート上で右クリックし、以下を選択します。 表示コード .
  • に表示されます。 Visual Basic エディター ここで、範囲から表を生成するためのコードを記述します。
  • 3つ目は、挿入のドロップダウンメニューバーから「モジュール」を選択します。
  • さらに、コピー&ペーストで VBAコード を下回る。

VBAのコードです。

 Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub. 
  • さらに、コードを実行するには RubSub ボタンを押すか F5 キーボードショートカット

  • このファイルは、前の例とまったく同じ名前でPDFとして保存されます。

VBAコード説明

 Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

これらのブロックは、変数の作成と代入のためのコードです。

 rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc 

これは、ファイルデータの範囲をPDFとして保存するものです。

続きを読む 書式を失うことなくExcel to PDFを変換する方法(5つの効果的な方法)

9.エクセルVBAでPDFに印刷しながら自動でファイル名を保存する

PDFへの印刷とファイル名の自動保存を行う別のExcel VBAメソッドを見てみましょう。

STEPS

  • まずはじめに、以下を選択します。 デベロッパー タブをクリックします。
  • 2つ目は、ピック ビジュアルベーシック から コード をクリックしてください。 Visual Basic エディター . クリック アルト + F11 を起動します。 Visual Basic エディター .
  • また、ワークシート上で右クリックし、次のように選択することもできます。 表示コード また、この画面は Visual Basic エディター .
  • さて、今回ご紹介するのは Visual Basic エディター で、範囲からテーブルを作成するコードを記述します。
  • さらに、選択 モジュール から インサート ドロップダウンメニューバー
  • 次に、コピーして貼り付けます。 ブイビーエー というコードがあります。

VBAコードです。

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' メール送信用にシートを新しいPDFファイルにコピー Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "╱"& sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 保存のみ: MsgBox "Saved as .pdf file: " & vbCrLf & vbCrLf & SVAS&AP_" "review .pdf document.".Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: End Function 
  • をクリックすると、そのコードが実行されます。 RubSub ボタンを押すか F5 キーボードショートカット

VBAコード説明

 sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" 

ファイルをpdfで取得し、pdfの名前を保存するため。

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

これは印刷品質を設定するだけです。

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _"Review .pdf document." Automatic_Name = True GoTo EndMacro DefLibError: MsgBox "Unable to save as "; vbCrLf ∓, _" SaveOnly; MsgBox ".pdf".PDF." Automatioc_Name = False 

これらの行は、pdfとして印刷するためにファイルを送信する方法をユーザーに指示します。

続きを読む Excelを切り取らずにPDFで保存する方法(4つの適切な方法)

結論

上記の方法は、その作業を支援するものです。 Excel VBAでPDFへの印刷と自動ファイル名保存を行う ご質問、ご意見、ご感想がありましたら、コメント欄でお知らせください。 また、他の記事もご覧ください。 エクセルウィキ・ドットコム ブログ

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。