PDFファイルの1ページ名にあるQRコードを読み込みたいのですが、QRコードを読み込むにはJPEG等の画像ファイルでなければ読み込めません(PDFのままでは読み込めません)。
その為、PDFからJPEGへの変換をする必要が出てきました。調べてみると簡単に出来ましたので、ここで紹介します。
【参考】QRコードを読み込む方法はこちら
やりたいこと
- PDFの表紙(1ページ目)をJPEGの画像ファイルにして出力
準備するもの
- Windowsのパソコン
- マイクロソフトエクセル
- Ghostscript

手順
1.Ghostscriptのインストーラーをダウンロードします。Ghostscriptの公式サイト(https://www.ghostscript.com/download/gsdnld.html)から、Windows用のインストーラーをダウンロードしてください。最新のバージョンをダウンロードすることをお勧めします。
私は、Windows11の64bitなので、下図の黄色ハイライト部分のライセンスをダウンロードしました。

2.Ghostscriptをインストールします。ダウンロードしたインストーラーを実行し、Ghostscriptをインストールしてください。インストール先のパスをメモしておいてください。通常は「C:\Program Files\gs\gs」のようになります。
3.Windowsの環境変数にGhostscriptのパスを追加します。VBAからGhostscriptを呼び出すためには、Windowsの環境変数にGhostscriptのインストール先のパスを追加する必要があります。以下の手順で環境変数を設定してください。
4.スタートメニューから「コントロールパネル」を開き、「システムとセキュリティ」、「システム」をクリックします。
5.左側のメニューから「システムの詳細設定」をクリックし、「環境変数」ボタンをクリックします。
6.「システム環境変数」の「Path」を選択し、「編集」をクリックします。
7.「新規」をクリックして、Ghostscriptのインストール先のパスを追加します。例えば、「C:\Program Files\gs\gs\bin」を追加します。
8.設定を保存して、ウィンドウを閉じます。
9.VBAからGhostscriptを呼び出すコードを作成します。以下は、Ghostscriptを使用してPDFをJPGに変換するVBAコードの例です。
PDFをJPEGに変換する
gs10.00.0 : バージョンによって変更されます
gswin64c.exe : お使いのWindowsのBit (32bit or 64bit)によって選択します。
Sub ConvertPDFtoJPEG(ByVal pdfPath As String, ByVal jpegPath As String, ByVal dpi As Integer)
Dim ghostscriptPath As String
ghostscriptPath = "C:\Program Files\gs\gs10.00.0\bin\gswin64c.exe" 'Ghostscriptのインストールパスを設定
'Ghostscriptコマンドを作成
Dim gsCommand As String
gsCommand = Chr(34) & ghostscriptPath & Chr(34) & " -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -sDEVICE=jpeg -dJPEGQ=100 -r" & dpi & " -sOutputFile=" & Chr(34) & jpegPath & Chr(34) & " " & Chr(34) & pdfPath & Chr(34)
'Ghostscriptを実行してPDFをJPEGに変換
Dim returnValue As Long
returnValue = Shell(gsCommand, vbHide)
If returnValue <> 0 Then
MsgBox "GhostscriptによるPDFからJPEGへの変換に失敗しました。エラーコード: " & returnValue
End If
End Sub
このコードでは、ConvertPDFtoJPEGという名前のサブルーチンを定義しています。このサブルーチンは、変換元のPDFファイルのパス(pdfPath)、変換後のJPEGファイルのパス(jpegPath)、およびJPEG画像の解像度(dpi)を引数として受け取ります。
Ghostscriptのパスは、ghostscriptPath変数に設定します。この変数には、Ghostscriptの実行ファイル(gswin32c.exeまたはgswin64c.exe)のフルパスを指定します。
次に、Ghostscriptコマンドを作成します。このコマンドは、Ghostscriptをコマンドラインから実行し、PDFファイルをJPEGに変換します。Ghostscriptコマンドの各パラメーターについては、以下の通りです。
-q: クイエットモードで実行することを指定します。
-dQUIET: ログの出力を抑制することを指定します。
-dSAFER: 安全性を高めるために、Ghostscriptの実行環境を制限します。
-dBATCH: Ghostscriptがバッチモードで実行されることを指定します。
-dNOPAUSE: 一時停止することを防止します。
-dNOPROMPT: プロンプトの表示を抑制するオプション
