連続印刷できるマクロの作り方と導入方法【 印刷作業の効率をアップさせる方法 】

Left Caption

疑問がある人

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

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

結論からいうと、転記VBAと印刷VBAを組み合わせた連続印刷VBAを導入するです。

この記事では、連続印刷VBAがどういうものか、VBAの導入の方法、連続印刷VBAを導入したサンプル事例について詳しく解説しています。

記事の内容を見て、「自分も似たような作業をしていて自動化したい」「自分の作業に合った連続印刷VBAを開発したい」と感じた方はお気軽に下記の送信フォームからお問合せください。

VBAの開発依頼やご相談等を承っております。

 

<<VBAに関するお問合せはこちら

 

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

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

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

 

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

 

Left Caption

ひらめく人

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

 

工事契約書の様式

 

一覧表の構成

 

転記VBAの動き

ユーザーフォームのテキストボックスに工事番号を入力すると、その工事番号の情報が工事契約書に転記されます。今回はテキストボックスを5個用意してあるので5件分の工事契約書を連続で転記し、印刷することが可能。

工事番号を入力→転記→印刷という作業を一瞬で処理することができます。連続印刷マクロは印刷件数が多いときにとても便利なVBAです。

 

連続印刷マクロの作り方

上記で紹介している「工事契約書を連続印刷するマクロ」の設定方法を詳しくご紹介していきます。

 

1.様式設定

「工事契約書様式」「一覧表様式」の作り方は上記を参考にしてください。様式設定では「どのような様式に、どのような項目を転記させるか」が確定するのでしっかり時間をかけて様式設定を行ってください。

 

2.VBAを起動

 

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

 

4.ModuleにVBAを記入

 

5.サンプルVBA(Module)

1 Sub 工事契約書転記()
2 Dim Ash As Worksheet
3 Dim Bsh As Worksheet
4 Set Ash = ThisWorkbook.Worksheets(“一覧表")
5 Set Bsh = ThisWorkbook.Worksheets(“工事契約書")
6 For j = 1 To 5
7 If UserForm1(“TextBox" & j).Value <> “" Then
8 i = UserForm1(“TextBox" & j).Value
9 Bsh.Range(“H6") = Ash.Cells(i + 2, 2)
10 Bsh.Range(“H6").HorizontalAlignment = xlLeft
11 Bsh.Range(“H8") = Ash.Cells(i + 2, 3)
12 Bsh.Range(“H8").HorizontalAlignment = xlLeft
13 Bsh.Range(“H10") = Ash.Cells(i + 2, 4)
14 Bsh.Range(“H10").HorizontalAlignment = xlCenter
15 Bsh.Range(“H10").NumberFormatLocal = “ggge年m月d日"
16 Bsh.Range(“P10") = Ash.Cells(i + 2, 5)
17 Bsh.Range(“P10").HorizontalAlignment = xlCenter
18 Bsh.Range(“P10").NumberFormatLocal = “ggge年m月d日"
19 Bsh.Range(“L12") = Ash.Cells(i + 2, 6)
20 Bsh.Range(“L12").HorizontalAlignment = xlCenter
21 Bsh.Range(“L12").NumberFormatLocal = “#,###"
22 Bsh.Range(“R14") = Bsh.Range(“L12").Value * 0.1
23 Bsh.Range(“R14").HorizontalAlignment = xlCenter
24 Bsh.Range(“R14").NumberFormatLocal = “#,###"
25 Bsh.Range(“J33") = Ash.Cells(i + 2, 8)
26 Bsh.Range(“J33").HorizontalAlignment = xlLeft
27 Bsh.Range(“J35") = Ash.Cells(i + 2, 7)
28 Bsh.Range(“J35").IndentLevel = 2
29 Bsh.Range(“J37") = Ash.Cells(i + 2, 10)
30 Bsh.Range(“J37").HorizontalAlignment = xlLeft
31 Bsh.Range(“J39") = Ash.Cells(i + 2, 9)
32 Bsh.Range(“J39").IndentLevel = 2
33 ActiveSheet.PageSetup.PrintArea = (“A1:X39")
34 ActiveSheet.PrintPreview
35 Else
36 End If
37 Next
38 End Sub

 

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

 

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

 

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

 

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

1 Private Sub CommandButton1_Click()
2 Dim Ash As Worksheet
3 Dim Bsh As Worksheet
4 Set Ash = ThisWorkbook.Worksheets(“一覧表")
5 Set Bsh = ThisWorkbook.Worksheets(“工事契約書")
6 Dim a1 As String
7 Dim a2 As String
8 Dim a3 As String
9 Dim a4 As String
10 Dim a5 As String
11 a1 = TextBox1.Value
12 a2 = TextBox2.Value
13 a3 = TextBox3.Value
14 a4 = TextBox4.Value
15 a5 = TextBox5.Value
16 Call 工事契約書転記
17 End Sub

 

10.実行

 

ユーザーフォームのボタンをクリックしてVBAを実行すると、指定した工事番号の書類をいっきに印刷することができます。紹介しているサンプルVBAでは、プリントアウトするのではなく印刷プレビューを表示させる設定になっています。

 

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

連続印刷マクロは一覧表シートから決められた様式へ入力事項を転記し、印刷するVBAです。このVBAは決められた様式を使って資料作成をする!という業務に導入することができ、私の職場ではかなり使用頻度の高いVBAです。

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

 

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

ひらめく人

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

 

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

「一覧表から請求書や納品書に情報を転記し、印刷する」という内容で、今回紹介している連続印刷マクロとほとんど同じVBAが導入されています。請求書や領収書、納品書のように伝票の種類がどんなに増えても対応することができます。

「会社名」から情報を転記させるパターンと「会社名と作成日」から情報を転記させるパターンに対応したものを作成しています。

伝票作成VBAについては下記の記事で詳しく紹介しています。

 

 

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

 

これからVBAを勉強をはじめるには

連続印刷VBAのように、VBAには仕事の効率をアップさせることができる機能がいろいろあります。VBAのプログラミングスキルを身に着けることで、今まで何時間もかかかっていた作業をほんの数分で処理することができるようになります。

VBAを基本から学びたい!という方におすすめなのが、オンラインプログラミング学習サービス【1st Step】です。

【1st Step】は初心者のためのプログラミング学習サービスで、C言語・java・VBAの3つのプログラミングの基礎をオンラインで勉強することができます。

 

  • 基礎からプログラミングを勉強したい
  • まとまった勉強時間の確保が難しい
  • 途中で挫折したくない

上記のように考えている方に【1st Step】はおすすめです。

下記の記事では、オンラインプログラミング学習サービス【1st Step】の特徴や私の体験など詳しく紹介しています。

これからVBAの勉強を始めようと考えている方は是非参考にしてみてください。