■ツール概要と目的
ボタンを押下するのみで、作成した注文書をPDFファイルとして保存する機能実装する。
以降、本ツールを「注文書PDF出力ツール」と呼ぶ。
■機能設計
本項では、「注文書PDF出力ツール」を使用するユーザ観点での機能設計を示す。
▼機能フロー図
「注文書PDF出力ツール」の機能フロー図を以下に示す。
▼機能概要
「注文書PDF出力ツール」の機能概要を以下に示す。
入力 | 処理内容 | 出力 | |
---|---|---|---|
– | ユーザは注文書を作成する。 | 【Excelファイル】 注文書 | |
【Excelファイル】 注文書 | 【注文書PDF出力ツール】 Excelファイルを別名でPDF出力する。 | 【PDFファイル】 注文書 |
▼入出力一覧
「注文書PDF出力ツール」にて使用する、入出力情報を以下に示す。
項目名 | 区分 | 内容 |
---|---|---|
注文書(Excelファイル) | 入出力 | ユーザが作成する注文書。 |
注文書(PDFファイル) | 出力 | ユーザが作成した注文書を PDFファイルとして出力したもの。 |
▼画面仕様
「注文書PDF出力ツール」に関する画面仕様を以下に示す。
- 「PDF出力」ボタン押下時、作成した画面左側の注文書をPDFファイルとして別名保存する。
▼制約事項・前提条件
「注文書PDF出力ツール」における制約事項および前提条件を以下に示す。
- Windows環境下のExcel VBAにのみ対応するものとする。
※Mac版のExcel VBAでは対応していない。 - シート名は「注文書」とする。
- 改ページのプレビューにて設定した範囲でPDF出力する。
- PDF出力ファイル名は、「注文書_<注文番号>.pdf」とする。
- PDFファイルの出力場所については以下の図の通り、「DEF」フォルダ配下とする。
・「注文書PDF出力ツール」のフォルダ構成
任意のフォルダ
│ 注文書.xlsm
│
└─ PDF
注文書_123456.pdf
■プログラム設計
「注文書PDF出力ツール」にて使用する処理は、PDF出力処理(「PDF出力」ボタン押下時の処理)のみである。
以降、「定数」およびPDF出力処理のプログラム仕様を示す。
▼定数
本処理で使用する定数を以下に示す。
定数名 | 値 | 型 | 内容 |
---|---|---|---|
STR_PDF | String | 出力時に使用するフォルダ名 | |
STR_CHUMONSYO | 注文書 | String | 出力時に使用するファイル名 |
PDF_KAKUCHOSHI | String | 出力時に使用する拡張子名 | |
CHUMON_NO_AREA | Z2 | String | 注文番号のセル位置 |
▼PDF出力処理
「PDF出力」ボタン押下時に注文書をPDFファイルとして保存する処理。
・プログラム処理フロー図
「PDF出力処理」のプログラム処理フロー図を以下に示す。
・プログラム仕様
「PDF出力」処理のプログラム仕様を以下に示す。
区分 | 型 | 概要 |
---|---|---|
引数 | – | 引数なし |
戻り値 | – | 戻り値なし |
入力 | 処理内容 | 出力 | ||
---|---|---|---|---|
– | シートオブジェクトに「注文書」シートを設定する。 | – | ||
– | With (「注文書」シート) | – | ||
– | 注文番号を取得する。 セル値:Z2 | – | ||
– | 出力ファイル名のフルパスをセットする。 ファイルパス: カレントディレクトリ\PDF\注文書_<注文番号>.pdf ※<注文番号>はセル値「Z2」の値 | – | ||
– | PDFで保存する。 | 【PDFファイル】 注文書 | ||
– | End With (「注文書」シート) | – | ||
– | 完了メッセージを出力する。 | – | ||
– | 「●終了処理」へ移動する。 | 【MsgBox】 処理完了 | ||
– | ●例外処理 ここから | – | ||
– | 例外エラーメッセージを出力する。 | 【MsgBox】 例外エラー | ||
– | 「●終了処理」へ移動する。 | – | ||
– | ●例外処理 ここまで | – | ||
– | ●終了処理 ここから | – | ||
– | シートオブジェクトを開放する。 | – | ||
– | ●終了処理 ここまで | – |
■サンプルコード
「注文書PDF出力ツール」のサンプルコードを以下に示す。
なお、実装場所は「ThisWorkbook」とする。
・ThisWorkbook
Option Explicit
' PDF出力パス・ファイル名関係の定数
Private Const STR_PDF As String = "PDF"
Private Const STR_CHUMONSYO As String = "注文書"
Private Const PDF_KAKUCHOSHI As String = ".pdf"
' エクセルの行列に関する定数(注文番号)
Private Const CHUMON_NO_AREA As String = "Z2"
' 「PDF出力」ボタン押下時の処理
Public Sub btn_click_output_pdf()
Dim sht_chumon As Worksheet ' 「注文書」シート
Dim chumon_no As String ' 注文番後
Dim output_fullpath As String ' PDF出力ファイル名(フルパス)
On Error GoTo btn_click_output_pdf_err
' 「注文書」シートをセット
Set sht_chumon = ThisWorkbook.Worksheets("注文書")
' 「注文書」シートにフォーカス
With sht_chumon
' 注文番号を取得
chumon_no = .Range(CHUMON_NO_AREA).Value
' 出力ファイル名をフルパスでセット
' (カレントディレクトリ)\PDF\注文書_<注文番号>.pdf
output_fullpath = ThisWorkbook.Path & "\" & STR_PDF & "\" _
& STR_CHUMONSYO & "_" & chumon_no & PDF_KAKUCHOSHI
' PDFで保存
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=output_fullpath
End With
' 完了メッセージ出力
MsgBox "PDF出力完了"
' 終了処理へ
GoTo btn_click_output_pdf_exit
' 例外処理
btn_click_output_pdf_err:
' 例外エラー内容出力
MsgBox "例外エラー:管理者へお問い合わせください" & vbCrLf _
& Err.Description
' 終了処理へ
GoTo btn_click_output_pdf_exit
' 終了処理
btn_click_output_pdf_exit:
' シートオブジェクトの解放
Set sht_chumon = Nothing
End Sub
■実行結果
・「PDF出力」ボタンを押下する
・「PDF出力完了」のメッセージを出力する
・所定のフォルダにPDFファイルが出力されていることを確認
・「注文書_123456.pdf」が開けることを確認
■参考
「注文書PDF出力ツール」を作成するにあたり、参考とさせていただいた外部リンクおよび内部リンクを示す。
▼外部リンク
・PDF保存処理
▼内部リンク
・GitHub
コメント