ExcelVBA~Excelデータを指定したファイルにPDF出力~

1. 概要

Excel VBA を使用して、指定したシートを任意のフォルダに保存します。
Excelファイルとして保存する方法とPDFとして保存する方法の両方を説明します。


2. 必要な準備

  1. Excel VBA の有効化
    • Excel のオプションで、「マクロを含むファイルの実行を許可」を有効にしてください。
    • マクロ有効ブックとして保存するのも忘れずに!
  2. 保存するシートの作成
    • 保存したいデータを含むシートを事前に準備してください。
    • シート名を確認し、コードで指定します。
  3. 保存先フォルダの準備
    • 保存したいフォルダを事前に作成してください。その時にパスも確認して下さい。

3. 実行方法

以下のVBAコードを利用して、指定したシートをExcelファイルおよびPDFとして保存します。

Excelファイルとして保存するコード

Sub Excelファイルを指定フォルダーに保存()
Dim ws As Worksheet
Dim folderPath As String
Dim fileName As String

' 保存するシートの指定
Set ws = ThisWorkbook.Sheets("Sheet1") ' 保存するシート名を指定

' 保存先フォルダーのパス
folderPath = "任意のパス" ' 保存したいフォルダーを入力

' 保存ファイル名
fileName = ws.Name & ".xlsx"

' 保存操作
ws.Copy
ActiveWorkbook.SaveAs folderPath & fileName, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close SaveChanges:=False

MsgBox "シートをExcelとして保存しました: " & folderPath & fileName, vbInformation
End Sub

PDFファイルとして保存するコード

Sub PDFを指定フォルダーに保存()
Dim ws As Worksheet
Dim folderPath As String
Dim fileName As String

' 保存するシートの指定
Set ws = ThisWorkbook.Sheets("Sheet1") ' 保存するシート名を指定

' 保存先フォルダーのパス
folderPath = "任意のパス" ' 保存したいフォルダーを入力

' 保存ファイル名
fileName = ws.Name & ".pdf"

' PDFの保存操作
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=folderPath & fileName, Quality:=xlQualityStandard

MsgBox "シートをPDFとして保存しました: " & folderPath & fileName, vbInformation
End Sub

4. 出力結果

コードを実行すると、指定したフォルダに次の形式のファイルが作成されます。

  • シート名: 保存するシート名 (例: Sheet1)
  • 保存パス: 任意のパス (例: C:\\Users\\YourName\\Documents\\SavedSheets\\)
  • 保存ファイル名:
    • Excel: Sheet1.xlsx
    • PDF: Sheet1.pdf

5. 注意事項

  1. フォルダの存在確認
    • フォルダが存在しない場合、コードはエラーとなるため、事前に保存先フォルダを作成してください。
  2. ファイル名の一意性
    • 同じ名前のファイルが既に存在する場合、上書きされるため注意してください。
  3. 保存先フォルダの権限
    • 保存先フォルダへのアクセス権限が必要です。
  4. マクロの有効化
    • マクロを実行できる設定にしておく必要があります。
  5. エラーハンドリング
    • パスやシート名が間違っている場合、エラーが発生する可能性があります。

コメント