一括でファイルをpdf化したい

おはようございます。すぎやまです。

この記事では、一括でファイルをpdf化する方法を紹介します。

まず、結論を記載します。

一括でpdf化

  • ps1ファイルを使用する場合、「ExportAsFixedFormat」コマンドを使用

下記、詳細を説明します。

手動でファイル一括移動

ファイルのpdf化は手動でも作業可能です。

方法は
①「ファイル」を選択
②「エクスポート」を選択
③「PDF/XPSの作成」を選択

ただし、ファイルごとに作業が必要なため、時間が掛かってしまいます。
そのため、次に紹介するps1ファイルを使用する方法をお勧めいたします。

Excelの一括PDF化

最初にファイルを作る手間がかかりますが、
ps1ファイルで一括PDF化をすると簡単に作業を完了出来ます。

下のコードは、「ExportAsFixedFormat」というコマンドを使用したコードです。

# Excelアプリケーションを開始
$excel = New-Object -ComObject Excel.Application
# Excelウィンドウを表示しないようにする
$excel.Visible = $false  
#警告・メッセージを表示しない
$excel.DisplayAlerts = $False

# 現在のフォルダを指定
$path = get-location
$ext = ".pdf"

# 出力先のフォルダを指定
$outputFolder = ".\pdf化"
# フォルダが存在しない場合は作成
if (-not (Test-Path $outputFolder)) {
    New-Item -ItemType Directory -Force -Path $outputFolder
}

# フォルダ内のExcelファイルを取得
$Files = Get-ChildItem -Path $path -Filter *.xlsx
$excelFiles = $Files.FullName

foreach ($excelFile in $excelFiles){
    
    # Excelファイルを開く
    $book = $excel.Workbooks.Open($excelFile)

    #変換対象ファイルをpdfとしてエクスポート
    $book.ExportAsFixedFormat(0, $excelFile)

    #ファイル名に".xlsx"が残ってしまうのでリネーム
    $pdffile =  $excelFile + $ext
    Get-ChildItem $pdffile | Foreach-Object {$newname = $_.Name -Replace ".xlsx",""}
    
    #Move-Itemで移動
    Move-Item $pdffile -Destination "$path\pdf化\$($newname)" -Force
    
}

# Excelアプリケーションを終了
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
[GC]::Collect() 
Write-Host "PDF変換が完了しました。"

使用方法はこちらの記事をご覧ください。
また、別の記事ではWordファイルのPDF化も紹介しております。こちらも併せてご覧ください。

ファイルは一度作ってしまえば使いまわせるので、非常におすすめです。

その他の作業を効率化したい方へ

今回はファイル名変更の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。

こちらの記事に纏めておりますので、是非ご一読ください!

以上、最後まで読んでいただきありがとうございました。

タイトルとURLをコピーしました