【マクロ入門#7】Excel VBAでの出力操作の基本:印刷・PDF出力
このブログでは、エクセルのマクロについて、ゼロからコードを書くのではなく、すでに存在するコードを読み、理解し、そして自分の業務に応じて組み合わせる方法を学んでいきます。
プログラミングの知識がなくても、コードの意味を読み取ることで、業務効率を劇的に向上させることができます。
目標は、コードを書けるようになることではなく、必要なコードを見つけ、それを自分の目的に合わせて使いこなせるようになることです。
日々の業務で役立つマクロの活用方法を、一緒に学んでいきましょう。
はじめに
Excelのデータを印刷やPDF形式で出力することは、業務報告やアーカイブ作成において非常に一般的です。Excel VBAを使用すると、これらのプロセスを自動化し、手間を大幅に削減することができます。
この記事では、Excel VBAを用いてシートの印刷設定とPDF出力を行う方法について解説します。
また、<InputBox>による枚数指定やファイル名指定についても解説していきます。
InputBoxの活用
<InputBox>はユーザーから情報を取得する簡単な方法であり、印刷枚数のようなパラメータを動的に受け取る際に便利です。この関数は、ユーザーが入力したテキストを文字列として返しますが、数値操作が必要な場合は適宜型変換を行う必要があります。
InputBoxの活用例:
Sub InputBox()
’InputBoxで名前の入力
Dim userName As String
userName = InputBox("あなたの名前を入力してください")
’メッセージボックスで表示
MsgBox userName
End Sub
この例では、ユーザーに名前を入力するよう求め、入力された名前をメッセージボックスを表示します。
印刷の自動化
Excel VBAを使用すると、特定のシートやワークブック全体の印刷を自動化することが可能です。印刷の設定には、印刷範囲の指定や印刷オプションの設定などが含まれますが、今回は印刷のみを紹介します。
印刷のVBAコード例:
Sub 印刷()
’PDFデータのファイル名の入力
Dim 印刷枚数 As Long
印刷枚数 = InputBox("印刷枚数")
'"sheet1"を印刷
Worksheets("Sheet1").PrintOut , , 印刷枚数
'印刷実行メッセージ
MsgBox 印刷枚数 & " 枚の印刷を実行します。"
End Sub
このスクリプトは、<InputBox>で指定した枚数分「Sheet1」を印刷します。
PDF出力の自動化
ExcelデータをPDF形式で出力することは、情報共有や保存に非常に便利です。VBAを用いると、特定の範囲やシートをPDFとして保存することが可能です。
PDF出力のVBAコード例:
Sub PDF出力()
’デスクトップパスの取得
Dim DesktopPath As String
DesktopPath = "C:\Users\" & Environ("USERNAME") & "\Desktop\"
’PDFデータのファイル名の入力
Dim pdfName As String
pdfName = InputBox("ファイル名")
Dim pdfPath As String
pdfPath = DesktopPath & pdfName
’PDFデータの出力
Worksheets("Sheet1").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName
End Sub
このコードでは、<InputBox>でファイル名を指定した後、「Sheet1」をPDF形式でデスクトップに保存します。ExportAsFixedFormatメソッドを使用することで、高品質なPDFファイルを生成できます。
まとめ
Excel VBAを活用することで、印刷やPDF出力のプロセスを簡単かつ効率的に自動化できます。これにより、時間の節約はもちろん、エラーの発生を減らし、業務の効率化を図ることが可能です。自動化スクリプトを適切に設定することで、日々の作業をよりスムーズに進めることができるでしょう。
次回は、セルの操作について、範囲選択と動的参照について解説していきます。ぜひ、チェックしてみてください。
この記事が気に入ったらサポートをしてみませんか?