スキャンする方法以外に簡単にできる方法を教えてほしいなあ・・・
前回の「PCT出願の軽減申請書」のことですね。
ワンクリックでワード文書からJPG画像に出力できるマクロを作りましたので紹介します。
前回記事の内容
本記事の内容
ワード文書(軽減申請書)をワンクリックでJPG画像に変換できる方法がわかる。
本記事の信頼性
この記事を書いている私は、中堅特許事務所でシステム管理者として17年間働いた経験があり特許事務作業の便利ツールに詳しいです。
必要ツールのインストール
パワーポイントやVisioなどには、標準で「JPG画像に出力する機能」が付属されていますが、ワードには、「JPG画像に出力する機能」がありません。そのため、ワード文書からJPG画像を出力する場合は、下記のソフトを呼び出してJPG画像の処理を代行させます。下記のソフトはいずれもフリーで使えます。
必要ツール
(1)ImageMagick
インストーラ: https://imagemagick.org/script/download.php
(2)Ghostscript(PDFのコンバートソフト)
インストーラ: https://www.ghostscript.com/download/gsdnld.html
ImageMagickのインストール時の注意点
(1)OFFICEのビット数にあったインストーラを使う。
「Officeのビット数(64bit or 32bit)」を確認にして、ビット数にあったインストーラ―をダウンロードしてください。
※「windowsのビット数」でない点に注意
(2)install iImageMagickObject OLE Control VBScript, Visual Basic, and WSHにチェックを入れる。
(3)マクロの参照設定
VBAの画面から「ツール」⇒「参照設定」を開いてImageMagickにチェックを入れる。
マクロコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
Sub WordToJpg() '--- 一時ファイルの作成(PDF) ---' Dim wordFileName As String 'wordファイル名(拡張子なし) Dim pdfFilePath As String 'PDFパス(一時ファイルパス) wordFileName = Left(ActiveDocument.Name, InStrRev(ActiveDocument.Name, ".") - 1) pdfFilePath = ActiveDocument.Path & "\" & wordFileName & ".pdf" Call ActiveDocument.ExportAsFixedFormat(OutputFileName:=pdfFilePath, _ ExportFormat:=wdExportFormatPDF) 'PDFとして出力(一時ファイル)" '--- 一時ファイルからJPG画像を出力する ---' Dim objFileSys As Object Dim DrawFolderPath As String '画像の保存先フォルダパス Dim jpgFilePath As String '保存先の画像ファイルパス(jpg画像) DrawFolderPath = ActiveDocument.Path & "\" & wordFileName & "JPG" jpgFilePath = DrawFolderPath & "\" & wordFileName & ".jpg" '画像の保存先フォルダを作成する。 Set objFileSys = CreateObject("Scripting.FileSystemObject") If Not objFileSys.FolderExists(DrawFolderPath) Then MkDir DrawFolderPath End If '一時ファイルからJPG画像(200dpi)を出力する Set img = New ImageMagickObject.MagickImage img.Convert "-density", "200", pdfFilePath, jpgFilePath Set img = Nothing '--- JPG画像のサイズ調整 ---' Dim jpgFileNames As String '出力画像のファイル名 Dim jpgFilePaths As String '出力画像のファイルパス jpgFileNames = Dir(DrawFolderPath & "\*.jpg") Do While jpgFileNames <> "" jpgFilePaths = DrawFolderPath & "\" & jpgFileNames Set img = New ImageMagickObject.MagickImage '余白をギリギリで切り取る。 img.Mogrify "-trim", "-fuzz", "5%", "+repage", jpgFilePaths '左右の余白を追加する。 img.Mogrify "-mattecolor", "#fff", "-frame", "669x0", jpgFilePaths '規定サイズにトリミングする。 img.Mogrify "-gravity", "center", "-crop", "1338x2007+0+0", jpgFilePaths 'グレースケールで出力。 img.Mogrify "-colorspace", "Gray", jpgFilePaths Set img = Nothing jpgFileNames = Dir() Loop '--- 一時ファイルの作成(PDF)の削除 ---' Kill pdfFilePath End Sub |
マクロの特徴
このマクロの特徴は、ワード文書をPDFファイルに一時的に出力した後、PDFファイルをJPG画像にコンバートする点です。
<PDFファイルを出力する工程(3行目~10行目)>
PDFファイルを出力する工程では、wordの機能を使って、ワード文書をPDFファイルに変換して保存します。
なお、PDFファイルは、JPG画像へ出力するための一時データですので、最後に消去します。
<PDFファイルからJPG画像へのコンバート工程(12行目~29行目)>
一時的に保存したPDFファイルをImageMagickを使ってJPEG画像に変換します。
ここでは、解像度200dpiで出力しています。
<JPG画像のサイズ調整(31行目~52行目)>
手数料軽減申請書のイメージデータは、200dpiでは2,007×1,338ドット以内のグレースケールにする必要がありますので、調整しています。
※43~46行目は、レイアウトを美しくしたいので追加していますが、なくても問題ないです。
実行結果
<実行前>
・保存フォルダ
・wordデータ
<実行後>
・保存フォルダ
・JPEG画像
ポイント
複数ページある場合、連番がついたJPEG画像(PCT軽減申請書-0.jpg、PCT軽減申請書-1.jpg)に変換されます。
以上、ワード文章からJPG画像をワンクリックで出力する方法を紹介しました。
※マクロをツールバーにワンクリックボタンとして登録する方法は、過去の記事をご覧ください。
このブログではこれからもどんどん特許事務に役立つ情報を発信していきますのでご覧いただければと思います!