サイトアイコン マメBlog

連続印刷するマクロの作り方【内容が異なる書類をまとめて印刷可能】

疑問がある人

決められた様式の書類で氏名や住所を入力して印刷、次に氏名や住所を変更して印刷、こんな作業を自動化したい!

 

こんな要望にお応えします。

 

結論からいうと、

転記マクロと印刷マクロを組み合わせた連続印刷マクロを導入する

です。

 

 

「連続印刷」と聞くと、

〇ページを〇部印刷する処理をマクロを使って処理する

と思われるかと思います。

 

しかし、この記事で紹介する連続印刷マクロは、

「書類の内容を編集して印刷する」行為を繰り返し行う

処理のことを言います。

 

イメージはこんな感じ

この記事では、

決められた様式の書類で、内容の内容を編集して印刷を繰り返すことができるマクロ

について詳しく解説しています。

 

エクセルを利用する仕事でめちゃくちゃ使えるマクロなので、

エクセル作業の効率をアップさせたいという方は是非参考にしてもてください。

 

連続印刷マクロとはどういうもの?

冒頭でも説明していますがこの記事で紹介する連続印刷マクロとは、

決められた様式の書類で、入力内容の異なる書類をまとめて印刷する

というものです。

 

下記の動画では、連続印刷マクロがどのような処置をするのか詳しく解説されています。

 

連続印刷マクロは次のような流れで処理が進んでいきます。

 

  1. テキストボックスに入力された値から一覧表シートから工事契約書シートに情報が転記される
  2. 転記が終わると工事契約書シートが印刷される
  3. 次のテキストボックスに入力された値から一覧表シートから工事契約書シートに情報が転記される
  4. 転記が終わると工事契約書シートが印刷される

 

連続印刷マクロに必ず設定しなければならない項目は、

  1. 印刷する書類の様式
  2. 基本情報を入力する一覧表
  3. 様式に応じたマクロ

の3つです。

 

 

ひらめく人

連続印刷マクロを作成する前に、契約書の様式の設定一覧表の設定をしっかり行う必要があります。

 

工事契約書の様式

 

一覧表の構成

 

転記VBAの動き

ユーザーフォームのテキストボックスに工事番号を入力すると、その工事番号の情報が工事契約書に転記されます。

今回はテキストボックスを5個用意してあるので5件分の工事契約書を連続で転記し、印刷することが可能

工事番号を入力 → 転記 → 印刷という作業を一瞬で処理することができます。

 

上を目指す人

書類の印刷業務が多いという方におすすめのマクロです。

下記の記事では、連続印刷マクロが設定されたエクセルファイルをダウンロードしてお使いいただくことが可能です。

 

 

印刷業務の効率をアップさせたいと考えている方は是非使ってみてください。

 

連続印刷マクロの作り方

 

「工事契約書を連続印刷するマクロ」をサンプルとして、マクロの設定方法を詳しくご紹介していきます。

 

1.様式設定

「工事契約書様式」「一覧表様式」の作り方は上記を参考にしてください。

様式設定では「どのような様式に、どのような項目を転記させるか」が確定するのでしっかり時間をかけて様式設定を行ってください。

 

 

例えば、

「工事名」が入力されるセルは「H6セル」

「工事場所」が入力されるセルは「H8セル」

に固定する。

 

様式の変更などで入力場所が変われば、変更に応じて設定したマクロも変更しなければなりません。

 

入力場所の変更は結構手間のかかる作業なので、

作業中に変更が発生しないよう様式は一番初めにしっかり確定してしまいましょう。

 

2.VBAを起動

 

3.標準モジュールを作成

 

4.ModuleにVBAを記入

 

5.サンプルVBA(Module)

Sub 工事契約書転記()
Dim Ash As Worksheet
Dim Bsh As Worksheet
Set Ash = ThisWorkbook.Worksheets("一覧表")
Set Bsh = ThisWorkbook.Worksheets("工事契約書")
For j = 1 To 5
If UserForm1("TextBox" & j).Value <> "" Then
i = UserForm1("TextBox" & j).Value
Bsh.Range("H6") = Ash.Cells(i + 2, 2)
Bsh.Range("H6").HorizontalAlignment = xlLeft
Bsh.Range("H8") = Ash.Cells(i + 2, 3)
Bsh.Range("H8").HorizontalAlignment = xlLeft
Bsh.Range("H10") = Ash.Cells(i + 2, 4)
Bsh.Range("H10").HorizontalAlignment = xlCenter
Bsh.Range("H10").NumberFormatLocal = "ggge年m月d日"
Bsh.Range("P10") = Ash.Cells(i + 2, 5)
Bsh.Range("P10").HorizontalAlignment = xlCenter
Bsh.Range("P10").NumberFormatLocal = "ggge年m月d日"
Bsh.Range("L12").HorizontalAlignment = xlCenter
Bsh.Range("L12") = Ash.Cells(i + 2, 6)
Bsh.Range("L12").NumberFormatLocal = "#,###"
Bsh.Range("R14") = Bsh.Range("L12").Value * 0.1
Bsh.Range("R14").HorizontalAlignment = xlCenter
Bsh.Range("R14").NumberFormatLocal = "#,###"
Bsh.Range("J33") = Ash.Cells(i + 2, 8)
Bsh.Range("J33").HorizontalAlignment = xlLeft
Bsh.Range("J35") = Ash.Cells(i + 2, 7)
Bsh.Range("J35").IndentLevel = 2
Bsh.Range("J37") = Ash.Cells(i + 2, 10)
Bsh.Range("J37").HorizontalAlignment = xlLeft
Bsh.Range("J39") = Ash.Cells(i + 2, 9)
Bsh.Range("J39").IndentLevel = 2
ActiveSheet.PageSetup.PrintArea = ("A1:X39")
ActiveSheet.PrintPreview
Else
End If
Next
End Sub

 

連続印刷マクロでは、

別シートに情報を転記するマクロ」と「For~Nextを使った繰り返し処理

がメインで使われています。

 

下記の記事では、ぞれぞれのVBAの詳しい解説が紹介されているので、

連続印刷マクロの理解を深めたい!という方は是非参考にしてみてください。

 

 シートから別シートに必要な情報を転記する方法ってないの? こんな疑問にお答えします。 結論から言うと、シート名を取得するVBAを使って、別シートに情報を自動反映させるマクロを作成する!です。 別シートに情報を転記するマクロの概要がこちら 一覧表に入力している大量の情報を、ボタンをクリックするだけで別シートの好きな場所(セル)に転記することが可能。 この別シートに情報を転記するマクロはシート名を取得する方法さえ理解すれば簡単に作成することができます。この記事では画像や動画を...
【エクセルマクロ】別シートに情報を自動反映させるマクロの作り方・導入方法を紹介 - mamemametochan.com

 

 期限が過ぎたらセルを赤色に塗りつぶす!数値から判定結果を自動出力する! こんな処理をエクセルVBAを使って自動化する方法をご紹介します。 本記事では、For NextループとIF関数を組み合わせた自動化テクニックをわかりやすく解説。基本的な使い方や実務で使える具体的なサンプルコード、処理速度を向上させるテクニック技まで、段階的に学べる内容となっています。 ガッツポーズの人「無限ループが怖い」「大量データの処理が遅い」という悩みも、本記事の内容で解決可能 VBA初心者の方でも実践できる具...
VBAでForと関数Ifを組み合わせて使用する方法をご紹介!繰り返し処理の作業効率が... - mamemametochan.com

 

6.ユーザーフォームの作成

 

7.ユーザーフォーム(オブジェクトの作成)

 

8.ユーザーフォームにVBAを記入

 

9.サンプルVBA(ユーザーフォーム)

Private Sub CommandButton1_Click()
Dim Ash As Worksheet
Dim Bsh As Worksheet
Set Ash = ThisWorkbook.Worksheets("一覧表")
Set Bsh = ThisWorkbook.Worksheets("工事契約書")
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String
a1 = TextBox1.Value
a2 = TextBox2.Value
a3 = TextBox3.Value
a4 = TextBox4.Value
a5 = TextBox5.Value
Call 工事契約書転記
End Sub

 

10.実行

 

ユーザーフォームのボタンをクリックしてVBAを実行すると、指定した工事番号の書類をいっきに印刷することができます。

紹サンプルVBAでは、プリントアウトするのではなく印刷プレビューを表示させる設定になっています。

 

 

連続印刷マクロは仕事に導入すべきVBA

 

連続印刷マクロは一覧表シートから決められた様式へ入力事項を転記し、印刷するVBAです。

このVBAは決められた様式を使って資料作成をする!という業務に導入することができ、私の職場ではかなり使用頻度の高いVBAです。

 

連続印刷マクロには以下のようなメリットがあります。

 

  • 過去の情報をすぐ参照できる
  • 数式が壊されることがない
  • ミスプリントを減らせる

 

ひらめく人

「数式が壊されない」という複数の人が扱う共有のエクセルにありがちな問題を解消することができる

 

私の職場では、伝票作成業務にも連続印刷マクロが導入されています。

 

「一覧表から請求書や納品書に情報を転記し、印刷する」という内容で、

今回紹介している連続印刷マクロとほとんど同じマクロが導入されています。

 

請求書や領収書、納品書のように

似たような様式の書類をまとめて出力したい!

というときに連続印刷マクロはとても有効です。

 

ガッツポーズの人

伝票の種類がどんなに増えても対応することができる。

 

動画で紹介している「伝票作成マクロ」では、

「会社名」から情報を転記させるパターン「会社名と作成日」から情報を転記させるパターン

に対応したマクロを設定しています。

 

取引が多い会社の場合、「会社名と作成日」から出力した方が効率的です。

 

伝票作成VBAについては下記の記事で詳しく紹介しているので、気になる方は是非参考にしてみてください。

 

豆父ちゃんエクセルファイルで伝票を効率よく管理したい。こんな要望にお答えします。結論からいうと、エクセルファイルに転記VBAを導入する!です。転記VBAやページの設定など、効率よく伝票を管理することができるエクセルファイルの作り方を紹介します。作成した転記VBAを使った伝票作成エクセルがどのようなものか下記の動画で紹介しています。 この記事の最後では、伝票作成VBAの比較として伝票作成専用ソフト【Misoca】の紹介をしています。エクセルを使った伝票作成と専用ソフトを使った伝票作成で迷っている方は合わせて...
エクセルVBAを使って伝票作成の効率をアップさせる方法【サンプルVBA付】 - mamemametochan.com

 

連続印刷VBAを導入することで、エクセル操作が不得意な方の書類作成の精度とスピードが上がり職場全体の作業効率をアップさせることができました。

決められた様式の書類を印刷する業務がある方に連続印刷マクロはおすすめです。

 

VBA初心者が効率化マクロを導入する方法

 

VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!

このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。

 

こんな問題を解決する方法がこちら

 

VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。

 

 

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。

 

マクロの開発を外注に依頼する

マクロの開発を外注に依頼する導入方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。

 

たとえば、

A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、

『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。

 

実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

 

 

ガッツポーズの人

写真貼付け作業の効率がめちゃくちゃアップ

 

 

『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、

VBA初心者でもマクロを導入できる、費用が安い、

というメリットがあります。

 

しかし

VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい

というデメリットもあります。

 

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい処理を実現するコードを書くだけ

です。

 

【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。

モバイルバージョンを終了