FC2ブログ

WORDファイルをPDFに変換する(無料で!)その4

 前回、WORDファイルをPDFに変換する(無料で!)その3で、(Excel)VBAを使ってWORDファイルをPDFに一括変換する方法を書きました。
 ここでは、PowerShellで一括変換する方法について書きます

 とは言っても相変わらず、一から自分で勉強してVBAを書くわけではありませんw
 PowerShellとは
PowerShell(パワーシェル)は、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Frameworkと.NET Coreを基盤としている。

かつてはMicrosoft Shell(MSH、コードネーム Monad)と呼ばれていた。

Windows 7以降のオペレーティングシステム (OS) には標準で搭載されている。
  出典: フリー百科事典『ウィキペディア(Wikipedia)』 PowerShell

ここで重要なのは、Windows 7以降のオペレーティングシステム (OS) には標準で搭載されている。ってことです。
最悪の場合、WordやExcelが入っていなくても、OS標準装備のPowerShellなら使えるってことです。
しかも、既にインターネット上にコードがあるのです。
今回、参考にさせてもらうのはこちら

YOMON8.NET
WORDファイル(docx)を一括PDF変換するPowerShellスクリプト

$word = NEW-OBJECT -COMOBJECT WORD.APPLICATION

$files = Get-ChildItem | Where-Object{$_.Name -match "docx$"}
foreach($file in $files)
{
try
{
$doc = $word.Documents.OpenNoRepairDialog($file.FullName)
$doc.SaveAs([ref] $file.FullName.Replace(".docx",".pdf"),[ref] 17)
$doc.Close()
Write-Host "$($file.FullName)をPDF変換しました"
}
catch
{
Write-Host "[ERROR]$($file.FullName)のPDF変換に失敗しました"
}
}
$word.Quit()



↑をテキストファイルにコピペしてConvert.ps1という名前で保存してください
あとは、変換したいwordファイルと同じフォルダに入れて右クリック→PowerShellで実行で次々と変換していきます。
ただし、このスクリプトだと*.docxというファイルしか変換してくれません(ノ_<)
ちょっと困ったなと思っていたら、同じことを考えている人は既にいましたw
しかも同じところをみていたという (ここは真似してないよ)

小さい頃はエラ呼吸
複数のWordファイルを一括でPDFに変換する方法

$word = NEW-OBJECT -COMOBJECT WORD.APPLICATION

# docxファイルまたはdocファイルを検索する
$files = Get-ChildItem | Where-Object{$_.Name -match "docx$" -or $_.Name -match "doc$"}
foreach($file in $files)
{
try
{
$doc = $word.Documents.OpenNoRepairDialog($file.FullName)
# 拡張子をpdfに変更して保存する
$doc.SaveAs([ref] $file.FullName.Replace($file.Extension,".pdf"),[ref] 17)
$doc.Close()
Write-Host "$($file.FullName)をPDF変換しました"
}
catch
{
Write-Host "[ERROR]$($file.FullName)のPDF変換に失敗しました"
}
}
$word.Quit()



↑をテキストファイルに(以下略)
ここでは、word2pdf.ps1で保存しています

使い方は

1.上記のソースコードを「word2pdf.ps1」というファイル名で保存します。
2.word2pdf.ps1をWord文書が置かれているフォルダにコピーします。
3.PowerShellを起動し、Word文書のフォルダに移動します。
4.word2pdf.ps1を実行します。



*.ps1って名前だったらなんでもいいよw
同じフォルダに入れて右クリック→PowerShellで実行でOK

これでパソコンに仕事してもらって、コーヒーでも飲んでいれば連続変換ができます。
VBAよりプロっぽいですが、変換速度はVBAのほうが速いみたいです。


WORDファイルをPDFに変換する(無料で!)その3

 前回、WORDファイルをPDFに変換する(無料で!)その2でWORDファイルをPDFに一括変換する方法に少しふれました
 ここでは、③VBAで一括変換する方法について書きます

 とは言っても一から自分で勉強してVBAを書くわけではありませんw
 今更ですがVBAとは
 

定型業務の自動化、省力化。例えば、毎日更新されるデータを出社してからいちいち手入力し、手順を入力して計算させていた業務を、夜の間に自動でソフトウェアを起動し、データを読み込ませ、朝までに処理させておける。またマクロ記録/再生という操作手順の記録/再生機能を使って、プログラムに関する知識が少ないユーザーでも、ある程度の定型業務の自動化を行なえる。

  出典: フリー百科事典『ウィキペディア(Wikipedia)』 Visual Basic for Applications

 今回の場合でいうと、WORDファイルをPDFに変換する(無料で!)その1で書いた1つのWORDファイルを開いてPDFで保存するという作業を、パソコンにやってもらおうってことです。

 さらに言うと、私が考え付いたことは既に誰かが考え付いていて、その方法はインターネット検索で調べられるという持論の元に他力本願を発揮します。
 車輪の再発明なんて面倒w
 ここでいう他力本願は「人任せ」という意味です。本来の仏教用語である他力本願とは違います

 調べると同じようなことをしている人はたくさんいます。
 今回、私が参考にした、というか丸々利用させてもらったのはこちら
 dzone. blog
 [Word VBA] 複数のWord文書をWordだけで連続PDF変換するマクロ作りました
 

Sub Exchange2PDF()

On Error Resume Next

' 選択したWordファイルをPDFとして連続保存するマクロ

Dim FSO As Object
Dim WSH As Object
Dim strCurPath As String
Dim strAFN As String
Dim strAFN2 As String
Dim strPDFName As String
Dim strActFile As String
Dim N As Long

Set WSH = CreateObject("WScript.Shell")

With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.Filters.Add "Wordファイル", "*.doc;*.docx;*.docm"
.FilterIndex = 1
.InitialFileName = WSH.SpecialFolders("MyDocuments") & "\"

.Title = "PDFに変換したいWordファイルを選択(複数選択可)"
.AllowMultiSelect = True

If .Show = -1 Then
For i = 1 To .SelectedItems.Count
strActFile = .SelectedItems(i)

Documents.Open strActFile, , , , , , , , , , , Visible:=False
Documents(strActFile).Activate

'PDFに保存する
Set FSO = CreateObject("Scripting.FileSystemObject")
strCurPath = ActiveDocument.Path & "\"
strAFN = ActiveDocument.Name
strAFN2 = FSO.GetBaseName(strAFN)
strPDFName = strCurPath & strAFN2 & ".pdf"
ActiveDocument.SaveAs2 FileName:=strPDFName, FileFormat:=wdFormatPDF

'Wordファイルを保存しないで閉じる
Documents.Close SaveChanges:=Flase
Next i
MsgBox "全てのファイルを変換しました。"
Else
MsgBox "キャンセルしました。"
Exit Sub
End If
End With
End Sub


 WordVBAと書いてあるので、WordVBAとして保存してみたのですが、ファイルを閉じるときに自分自身も閉じてしまうので途中で処理が止まってしまいます 私の利用方法が間違っているのでしょうか?(;´Д`)

 WordがダメならExcelを利用すればいいじゃない!
 ってことでExcelVBAとして保存してみると!正常に連続変換に成功しました

 同名ファイルが存在する場合は確認なしで上書きしますw
 VBAの利用方法は別に書いてみようと思います。


WORDファイルをPDFに変換する(無料で!)その2

 WORDファイルをPDFに変換する(無料で!)では、1つのWORDファイルをPDFに変換する方法を書きました

 いただいたマニュアルを1ファイルずつPDFに変換していくのはとても面倒です。
 とはいえ、有料ソフトを購入するのはもったいない(笑)
 有料でよければこれが一番?
 PDFをWord文書に変換、PDFからWordへのコンバーター | Adobe Acrobat DC

無料で簡単に変換できる方法は...
①オンラインで変換する
 1ファイルずつ、かつインターネットに接続できる環境なら
 WORD PDF 変換 - DOCをPDFに変換できる、無料オンラインツール
 とか
 WordをPDFに変換。DOC文書をPDFに
 とか
 探すと他にも出てきますね

 ②フリーソフトがインストールできる環境なら
  仮想プリンタ を利用して印刷と同じ手順でファイル変換!
  印刷できるファイルならWORDじゃなくてもPDFに変換できます
  無料 PDF 変換・作成ソフト CubePDF - CubeSoft
  とか
  Bullzip.com - Free PDF Printer
  とか
  これも探せば他にも出てきますね

 ③VBAで一括変換する
  インターネット接続していない・フリーソフトのインストールが面倒(会社の許可が必要とか)な場合
  WORDのファイルを変換しようしているのだからWORDとEXCELはインストールされているはずです
  なので、VBAで処理するマクロを書きます

  長くなりそうなので、別に書きます


検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR