この記事では、一括でファイルを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化も紹介しております。こちらも併せてご覧ください。
ファイルは一度作ってしまえば使いまわせるので、非常におすすめです。
その他の作業を効率化したい方へ
今回はファイル名変更の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。
以上、最後まで読んでいただきありがとうございました。
メーカー勤務のサラリーマン。
生成AIを駆使してプログラムを作り、
日々の業務の効率化を図る。