この記事では、フォルダにあるワードファイルすべてを一括でPDFにする方法を紹介します。
この記事を読めば、ファイルを開いて変換する手間が今後一切なくなります。
こんな方におすすめ
- wordファイルのpdf化、めんどくさすぎる!!という方
- ChatGPTを使ったけど、機能しなかった方
文書として展開・保存する際、pdfファイルに変換する必要が出てくることはよくあります。
このとき、複数のファイルを手動でPDF化すると時間がかなり掛かってしまいます。
今回はフォルダにある全てのwordファイルを一括pdf化するps1ファイルを紹介します。
この記事ではコードを紹介しますので、それをコピーして張り付けるだけでps1ファイルが作れます。
それではさっそく説明いたします。
機能紹介
このファイルは、フォルダ内にあるwordファイルをpdf化するものです。
例えば、フォルダにこんな感じでwordファイルがあるとします。
紹介する手法を使えば、一括でフォルダにあるWordファイルをPDF化しフォルダに纏めることが出来ます。
さっそく作り方を説明します。
ps1ファイルの作り方・使い方
ps1ファイルの作り方は、この記事を参照ください。
図解付きでps1ファイルの作り方と使い方を紹介しています。
コード紹介
今回使用したファイルの中身は下記です。
# Wordアプリケーションを開始
$Word = New-Object -ComObject Word.Application
# Wordウィンドウを表示しないようにする
$Word.Visible = $false
# 現在のフォルダを指定
$path = get-location
$ext = ".pdf"
# 出力先のフォルダを指定
$outputFolder = ".\pdf化"
# フォルダが存在しない場合は作成
if (-not (Test-Path $outputFolder)) {
New-Item -ItemType Directory -Force -Path $outputFolder
}
# フォルダ内のWordファイルを取得
$Files = Get-ChildItem -Path $path -Filter *.docx
$WordFiles = $Files.FullName
foreach ($WordFile in $WordFiles){
# Wordファイルを開く
$doc = $word.Documents.Open($WordFile)
#変換対象ファイルをpdfとしてエクスポート
$doc.ExportAsFixedFormat($WordFile + ".pdf", 17)
#ファイル名に".docx"が残ってしまうのでリネーム
$pdffile = $WordFile + $ext
Get-ChildItem $pdffile | Foreach-Object {$newname = $_.Name -Replace ".docx",""}
#Move-Itemで移動
Move-Item $pdffile -Destination "$path\pdf化\$($newname)" -Force
}
# Wordアプリケーションを終了
$word.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word) | Out-Null
[GC]::Collect()
Write-Host "PDF変換が完了しました。"
この上のコードをコピーして、テキストに張り付けてps1ファイルにしてください。
それだけでファイルが完成します。
使い方
ファイルが完成したらこんな感じになります。
まず、先ほどのフォルダのパスを取得します。
フォルダの、上のバーをクリックすると
こんな画面になるので、「Ctrl」+「C」でパスをコピーします。
そうしたら、「Windows Power Shell」を起動します。
起動したら、 「CD」と打ち込んだ後にスペースキーを押し、「Ctrl」+「V」を打ち込みます。
すると下記のような状態になります。
この状態で、作成したps1ファイルを、このウインドウに重ねると
このようになりますので、あとはエンターキーを押すと
これで完成です!
このフォルダを開けば、中にpdf化されたファイルが入っています。
以上、最後まで読んでいただき誠にありがとうございました。
メーカー勤務のサラリーマン
日々の業務を効率的に進めるため、
慣れない々プログラミングを勉強中。
AIを活用した日々の作業削減を目論みブログを開設。