相談者 私は今、Excelで請求書を作っています。最後にするPDF発行の作業は、簡単ではあるんですけど、何枚も作るとなってくると、結構めんどくさくって……。PDF発行の作業って、マクロで自動化できますよね?
(マクロについての詳細は「Excel VBAを使ってできること」をご覧ください。)
(請求書のテンプレートは「軽減税率・窓付長3封筒対応エクセル用請求書テンプレート」から無料でダウンロードできます。)
丸井 はい、もちろんできます。マクロを使えば一瞬です。
相談者 あぁよかった。と言っても実は私、マクロのことは全然わかんないんですけど……。
丸井 大丈夫です。マクロ初心者でも簡単に導入できる方法をお教えしましょう。今からお教えする方法でマクロを導入すれば、コマンドボタンをクリックするだけで、請求書のPDFファイルを、そのExcelファイルが保存されている場所と同じ場所に、発行日と請求書番号を組み合わせたファイル名で、自動保存できるようになります。
相談者 おぉ、すばらしい。
ワークシートを一瞬でPDF化するマクロの簡単導入4ステップ
- コマンドボタンを設置する
- コマンドボタンのプロパティを設定する
- コマンドボタンのコードを記述する
- デザインモードをオフにする
ステップ1. コマンドボタンを設置する
[開発]タブ
↓
[挿入]
↓
[コマンドボタン(ActiveXコントロール)]
↓
コマンドボタンを設置したい場所でドラッグをして、コマンドボタンを設置
↓
ステップ2. コマンドボタンのプロパティを設定する
設置したコマンドボタンを選択して右クリック
↓
[プロパティ]
↓
「プロパティ」ウインドウの[全体]タブ
↓
(オブジェクト名)に「PDF」、
Captionに「PDF」、
PrintObjectに「False」、
を入力
↓
「プロパティ」ウインドウ右上の[✕]
↓
ステップ3. コマンドボタンのコードを記述する
設置したコマンドボタンを選択して右クリック
↓
[コードの表示]
(「Microsoft Visual Basic」が起動します。)
↓
「Microsoft Visual Basic」ウインドウの、「Private Sub PDF_Click()」と「End Sub」の間に次の文章を入力(コピペ)
(赤字部分には発行日が入力されたセル番号を、青字部分には請求書番号が入力されたセル番号を入れてください。)
↓
Dim MyName As String
MyName = ThisWorkbook.Path & _
“¥” & _
Format(Range(“F11“).Value, “yyyymmdd”) & _
“請求書#” & _
Range(“F10“).Value
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=MyName
↓
ステップ4. デザインモードをオフにする
「Microsoft Excel」ウインドウを選択
↓
[開発]タブ
↓
[デザインモード](オフにする)
まとめ
丸井 以上です。これで、今後はいつでも好きな時に、今設置したコマンドボタンをクリックするだけで、請求書のPDFファイルを、そのExcelファイルが保存されている場所と同じ場所に、発行日と請求書番号を組み合わせたファイル名で、自動保存できるようになります。簡単導入4ステップを改めてお伝えしますと──
- コマンドボタンを設置する
- コマンドボタンのプロパティを設定する
- コマンドボタンのコードを記述する
- デザインモードをオフにする
相談者 いや〜、これ快感ですね。今までめんどくさかったのがウソみたいですよ。今日はありがとうございました。
丸井 こちらこそ、ありがとうございました。
参考文献:
『Excelの極意4 VBA』早坂清志著・毎日コミュニケーションズ
『できる逆引き Excel VBA を極める勝ちワザ700』国本温子・緑川吉行&できるシリーズ編集部著・インプレスジャパン
追伸
美しいデザインの四書(見積書・納品書・請求書・領収書)をすばやく作成・保存・集計・検索したいですか?