【エクセルVBA】選択範囲をPDF化する
ExcelのVBAを使えば、シートをPDFファイルに変換して保存することができます。
選択した範囲をPDFファイルに変換して保存する方法 について説明します。
イメージ動画(音声はありません)
サンプルダウンロード
説明に使用しているエクセルファイルです
下図のような表示が出た場合は、以下の手順でマクロを有効にできます。
- 一度、エクセルを閉じる
- ダウンロードしたエクセルファイルを「右クリック」
- 「プロパティ」を選択
- 「全般」タブのセキュリティの「許可する」に ✓
- 「適用」ボタンをクリック
- 「OK」ボタンをクリック
動作の流れ
- PDFにしたい範囲を選択
- ボタンをクリックする
- 保存先を選択するダイアログボックスが表示される
- 保存先を 確定 or キャンセル
- 確定:選択範囲がPDFとして保存される (保存と同時にPDFが開く)
- キャンセル:何もせず終了
エクセルへ実装手順
Excelを起動し、新しいワークブックを作成します。
「開発」タブをクリックし、「Visual Basic」アイコンをクリックしてVBAエディタを開きます。
「挿入」メニューから「モジュール」を選択して、新しいモジュールを作成します。
作成したコジュール(Module1)にコードを書く(コピペする)
「上書き保存」する
上書き保存すると、名前を付けて保存のダイアログが出るので、ファイル名を入力し、ファイルの種類を「Excelマクロ有効ブック(.xlsm)」にして「保存」します。
VBE(VBAエディタ)は「×」で閉じてください。
「開発」タブの「挿入」から「ボタン」を選択してください。
ボタンを任意の場所にボタンを配置します。配置すると「マクロの登録」ダイアログが出るので、先ほど書いた(コピペした)マクロを選択し「OK」します
「保存」(上書き保存)します。
VBAコード
Sub ExportToPDF()
'セルが選択されている場合のみ処理を実行
If Selection.Cells.Count > 0 Then
' 保存するPDFファイル名はシート名とする
Dim defaultFileName As String
defaultFileName = ActiveSheet.Name
'保存ダイアログを表示して保存先を指定させる
Dim savePath As Variant
savePath = Application.GetSaveAsFilename( _
fileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Save PDF As", _
InitialFileName:=defaultFileName)
' 指定されたファイル名でPDFファイルを作成して保存
If savePath <> False Then
ActiveSheet.PageSetup.PrintArea = Selection.Address ' 印刷範囲
With ActiveSheet.PageSetup
.LeftMargin = 0 '余白(左)
.RightMargin = 0 '余白(右)
.TopMargin = 0 '余白(上)
.BottomMargin = 0 '余白(下)
.HeaderMargin = 0 '余白(ヘッダ)
.FooterMargin = 0 '余白(フッタ)
.Orientation = xlPortrait ' 縦向き
.Zoom = False '拡大縮小
.FitToPagesWide = 1 'ページ数(横)
.FitToPagesTall = 1 'ページ数(縦)
.PaperSize = xlPaperA4 ' 用紙サイズ
.CenterHorizontally = True ' 水平中央揃え
.CenterVertically = True ' 垂直中央揃え
End With
' PDFを作成して保存して開く
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=savePath, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Else
MsgBox "「キャンセル」されました。"
End If
Else
MsgBox "範囲選択されていません。"
End If
End Sub
PDF化のメリット
異なるコンピューターやプログラムでも同じように表示されるため、共有するときに表示崩れなどの問題が発生しません。
印刷時にレイアウトが崩れることがなく 印刷したい人にとっても便利です。
パスワードを設定することができ、不正アクセスを防ぐことができるので、セキュリティ上のリスクを減らすことができます。
検索機能やブックマーク機能があり、大量の情報を含むファイルを効率的に管理することができます。
PDF化のデメリット
編集が困難であるため、情報の修正や更新が必要な場合には、元のエクセルファイルを編集する必要があります。
PDFファイルは、テキストや画像などのファイルサイズが大きくなることがあり、ストレージの使用量が増えることがあります。