大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使って、複数シートや複数ブック、PDFで請求書を作成する方法について、ご紹介します。請求書の作成を自動化できると、業務を効率化することができます。Excel VBAを使って請求書の作成を自動化する方法について、マスターしていきましょう。

はじめに

この記事では、複数シートや複数ブック、PDFで請求書を作成する方法について、ご紹介します。

Excel VBAを使って、請求書を自動で作成できると、業務を効率化することができます。

業務内容に応じて、複数シートや複数ブック、PDFで請求書を作成して、業務を効率化していきましょう。

では、複数シートや複数ブック、PDFで請求書を作成する方法について、解説していきます。

この記事を読むメリット

  • 請求書の作成を自動化して、業務を効率化することができます。

本記事の内容を動画でまとめています

目次から見たい項目へ移動すると便利ですよ。

目次

請求書を作成する

請求書を作成してみます。

請求書へ値を転記する

やりたい内容は、請求書へ転記したい、ということになります。

請求書を作成したい

やりたい内容は、請求書へ転記したい、ということになります

データベースから請求書に転記して、請求書を作成したいです。

データベースから請求書に転記したいです

ご請求金額や、価格など計算が必要なところは、数式を使って計算します。

ご請求金額や、価格など計算が必要なところは、数式を使って計算します

という感じで請求書を作成してみます。

VBAコード

データベースから値を転記して、請求書を作成するVBAコードは、次のようになります。

Sub TEST1()
  
  '請求書の入力項目をクリア
  Sheets("請求書").Range("A2,A10:E12").ClearContents
  
  '取引先を入力
  Sheets("請求書").Range("A2") = Sheets("DB").Range("A2")
  
  Dim A, B, C
  With Sheets("DB").Range("A1").CurrentRegion.Offset(1, 0)
    A = .Resize(.Rows.Count - 1).Columns(2) '品目
    B = .Resize(.Rows.Count - 1).Columns(3) '単価
    C = .Resize(.Rows.Count - 1).Columns(4) '数量
  End With
  
  Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
  Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
  Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
    
End Sub

では、手順をみていきます。

請求書フォームとデータベースは、あらかじめ作成しておきます。

請求書フォームとデータベースを作成

請求書フォームを作成しておきます。

請求書フォームを作成しておきます

データベースを用意します。

データベースを用意します

では、VBAコードを実行してみます。

請求書の入力欄をクリアします。

請求書の入力欄をクリア

請求書の入力欄をクリアします

データベースから取引先を転記します。

取引先を入力

データベースから取引先を転記します

次は、品目や単価、数量を請求書に入力していきます。

品目や単価、数量を入力

まずは、品目や単価、数量を配列に格納します。

品目や単価、数量を配列に格納します

配列に入力した品目や単価、数量を、請求書に入力をします。

配列に入力した品目や単価、数量を、請求書に入力をします

という感じで、請求書に値を入力します。

これで、データベースから請求書に値を転記して、請求書を作成できます。

請求書を作成できた

データベースから請求書に値を転記して、請求書を作成できました

データベースから請求書に値を転記して、請求書を作成できました。

新規シートに作成する

新規シートに請求書を作成してみます。

新規シートに請求書を作成したい

新規シートに請求書を作成してみます

新規シートに請求書を作成するVBAコードになります。

VBAコード

手順は、次のようになります。

  • 請求書を作成
  • 請求書を新規シートにコピー
  • シート名を変更

という感じです。

Sub TEST2()
  
  '請求書の入力欄をクリア
  Sheets("請求書").Range("A2,A10:E12").ClearContents
  
  '取引先を入力
  Sheets("請求書").Range("A2") = Sheets("DB").Range("A2")
  
  Dim A, B, C
  With Sheets("DB").Range("A1").CurrentRegion.Offset(1, 0)
    A = .Resize(.Rows.Count - 1).Columns(2) '品目
    B = .Resize(.Rows.Count - 1).Columns(3) '単価
    C = .Resize(.Rows.Count - 1).Columns(4) '数量
  End With
  
  Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
  Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
  Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
  
  '最終シートに、コピー
  Sheets("請求書").Copy after:=Sheets(Sheets.Count)
  ActiveSheet.Name = Range("A2") 'シート名を変更
  
End Sub

最初のVBAコードは同じで、最後の方を変更しています。

データベースから請求書に値を転記して、請求書を作成します。

請求書を作成

データベースから請求書に値を転記して、請求書を作成します

データベースから請求書に値を転記して、請求書を作成しました。

新規シートに請求書をコピー

新規シートに請求書のシートをコピーします。

新規シートに請求書のシートをコピーします

新規シートに請求書のシートをコピーしました。

新規シートのシート名を変更します。

新規シートのシート名を変更します

新規シートのシート名を変更しました。

新規シートに請求書を作成できた

新規シートに請求書を作成できます。

新規シートに請求書を作成できました

新規シートに請求書を作成できました。

新規ブックに作成する

次は、新規ブックに請求書を作成してみます。

新規ブックに請求書を作成したい

やりたい内容は、新規ブックに請求書を作成したい、ということになります。

新規ブックに請求書を作成したいです

こんな感じで、別ブックに請求書を作成したいです。

別ブックに請求書を作成したいです

では、別ブックに請求書を作成するVBAコードをみてみます。

VBAコード

手順としては、次のようになります。

  • 請求書を作成
  • 新規ブックにコピー
  • 名前を付けて保存
  • 新規ブックを閉じる

という感じになります。

Sub TEST3()
  
  '請求書の入力欄をクリア
  Sheets("請求書").Range("A2,A10:E12").ClearContents
  
  '取引先を入力
  Sheets("請求書").Range("A2") = Sheets("DB").Range("A2")
  
  Dim A, B, C
  With Sheets("DB").Range("A1").CurrentRegion.Offset(1, 0)
    A = .Resize(.Rows.Count - 1).Columns(2) '品目
    B = .Resize(.Rows.Count - 1).Columns(3) '単価
    C = .Resize(.Rows.Count - 1).Columns(4) '数量
  End With
  
  Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
  Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
  Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
  
  '新規ブックにコピー
  Sheets("請求書").Copy
  '名前を付けて保存
  ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("A2") & ".xlsx"
  ActiveWorkbook.Close False '新規ブックを閉じる
  
End Sub

では、実行してみます。

まずは、データベースから請求書に値を転記して、請求書を作成します。

請求書を作成

データベースから請求書に値を転記して、請求書を作成します

新規ブックに請求書を作成していきます。

新規ブックに請求書を作成

新規ブックに請求書をコピーします。

新規ブックに請求書をコピーします

新規ブックを名前を付けて保存します。

新規ブックを名前を付けて保存します

名前を付けて保存できます。

名前を付けて保存できました

新規ブックを閉じます。

新規ブックは閉じます

新規ブックに請求書を作成することができます。

新規ブックに請求書を作成できた

別ブックの請求書を作成できます。

別ブックの請求書を作成できました

別ブックに、請求書を作成できます。

別ブックに、請求書を作成できました

別ブックに請求書を作成したい場合は、こんな感じで「新規ブックにコピー」して、「名前を付けて保存」という流れでできます。

PDFを作成する

次は、請求書のPDFを作成してみます。

請求書のPDFを作成したい

請求書シートをPDFで保存するという感じです。

請求書シートをPDFで保存したいです

こんな感じで、請求書をPDFで保存したいです。

請求書をPDFで作成したいです

請求書のPDFを作成するVBAコードをみてみます。

VBAコード

請求書のPDFを作成する手順は、次のようになります。

  • 請求書を作成
  • 請求書のシートをPDFにエクスポート

という感じです。

Sub TEST4()
  
  '請求書の入力欄をクリア
  Sheets("請求書").Range("A2,A10:E12").ClearContents
  
  '取引先を入力
  Sheets("請求書").Range("A2") = Sheets("DB").Range("A2")
  
  Dim A, B, C
  With Sheets("DB").Range("A1").CurrentRegion.Offset(1, 0)
    A = .Resize(.Rows.Count - 1).Columns(2) '品目
    B = .Resize(.Rows.Count - 1).Columns(3) '単価
    C = .Resize(.Rows.Count - 1).Columns(4) '数量
  End With
  
  Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
  Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
  Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
  
  'PDFで保存
  With Sheets("請求書")
    .ExportAsFixedFormat 0, ThisWorkbook.Path & "\" & .Range("A2") & ".pdf"
  End With
  
End Sub

では、VBAコードを実行してみます。

まずは、データベースから値を転記して、請求書を作成します。

請求書を作成

請求書を作成します

作成した請求書をPDFにエクスポートします。

請求書をPDFにエクスポート

「.ExportAsFixedFormat」を使って、PDFにエクスポートするという感じです。

請求書シートをPDFにエクスポートします

実行すると、PDFを作成することができます。

PDFにエクスポートできました

PDFを開いて中身を確認してみます。

請求書のPDFを作成できた

請求書をPDFで保存できました

請求書をPDFで保存できていることがわかります。

取引先ごとに複数の請求書を作成する

次は、「取引先ごと」に、複数の請求書を作成してみます。

複数シートにすべての請求書を作成する

取引先ごとに、「複数シート」にすべての請求書を作成してみます。

取引先ごとに複数シートに請求書を作成したい

複数の取引先を、データベースに登録しました。

複数の請求書を、複数シートに作成したいです

次のように、取引先ごとに、別シートに請求書を作成してみます。

複数シートに、請求書を作成したいです

では、VBAコードをみてみます。

VBAコード

取引先ごとに、別シートに請求書を作成する手順は、次のようになります。

  • 取引先をループしていく
  • 取引先の請求書を作成
  • 別シートにコピー

という感じで取引先をループして、別シートに請求書を作成していきます。

Sub TEST5()

  Dim D
  '取引先の配列を作成
  D = Array("AAA", "BBB", "CCC")
  
  For i = 0 To 2
    
    '取引先でフィルタ
    Sheets("DB").Range("A1").AutoFilter 1, D(i)
    'フィルタ結果を、別セルにコピー
    Sheets("DB").Range("A1").CurrentRegion.Copy Sheets("DB").Range("F1")
    Sheets("DB").Range("A1").AutoFilter 'オートフィルタを解除
    
    '請求書の入力欄をクリア
    Sheets("請求書").Range("A2,A10:E12").ClearContents
    
    '取引先を入力
    Sheets("請求書").Range("A2") = Sheets("DB").Range("F2")
    
    Dim A, B, C
    With Sheets("DB").Range("F1").CurrentRegion.Offset(1, 0)
      A = .Resize(.Rows.Count - 1).Columns(2) '品目
      B = .Resize(.Rows.Count - 1).Columns(3) '単価
      C = .Resize(.Rows.Count - 1).Columns(4) '数量
    End With
    
    Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
    Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
    Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
    
    '最終シートにコピー
    Sheets("請求書").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = Range("A2") 'シート名を変更
    
    'コピーした値をクリア
    Sheets("DB").Range("F1").CurrentRegion.Clear
    
  Next
  
End Sub

では、VBAコードを実行してみます。

1つ目の取引先の請求書を作成

1つ目の取引先で、フィルタします。

1つ目の取引先で、フィルタします

フィルタ結果を別セルにコピーします。

フィルタ結果を別セルにコピーします

オートフィルタを解除します。

オートフィルタを解除します

コピーした値を請求書に転記して、請求書を作成します。

コピーした値を請求書に転記して、請求書を作成します

請求書を新規シートにコピーします。

請求書を新規シートにコピーします

コピーした値をクリアします。

コピーした値をクリアします

この流れを他の取引先でもループしていきます。

2つ目の取引先の請求書を作成

2つ目の取引先でフィルタします。

2つ目の取引先でフィルタします

フィルタ結果を別セルにコピーします。

フィルタ結果を別セルにコピーします

オートフィルタを解除します。

オートフィルタを解除します

コピーした値から請求書を作成します。

コピーした値から請求書を作成します

新規シートにコピーします。

新規シートにコピーします

コピーした値をクリアします。

コピーした値をクリアします

次は、3つ目の取引先で、請求書を作成していきます。

3つ目の取引先の請求書を作成

3つ目の取引先で、フィルタします。

3つ目の取引先で、フィルタします

フィルタ結果を別セルにコピーします。

フィルタ結果を別セルにコピーします

オートフィルタを解除します。

オートフィルタを解除します

コピーした値から請求書を作成します。

コピーした値から請求書を作成します

新規シートにコピーします。

新規シートにコピーします

コピーした値をクリアします。

コピーした値をクリアします

これで、取引先ごとに、複数シートに請求書を作成できます。

取引先ごとに複数シートに請求書を作成できた

取引先ごとに、複数シートに請求書を作成できました

取引先ごとに、複数シートに請求書を作成できました。

取引先リストを作成して複数シートに作成

取引先が増えてくると、手動で入力している大変なので、「取引先リスト」を作成して、請求書を作成すると便利です。

取引先リストを作成して、複数シートに請求書を作成してみます。

取引先リストを作成して請求書を作成したい

取引先リストを作成して、複数シートに請求書を作成したいです

取引先リストのように、ユニークなデータを作成したい場合は、重複の削除が使えます。

では、VBAコードをみてみます。

VBAコード

取引先リストを作成して、複数シートに請求書を作成する手順は、次のようになります。

  • 取引先の値を別セルにコピー
  • 取引先の値から重複を削除
  • 重複を削除した値を配列に格納
  • 取引先リストをループ
  • 取引先ごとに新規シートに請求書を作成

という感じです。

Sub TEST6()
  
  With Sheets("DB")
    '取引先の値を、別セルにコピー
    .Range("A1").CurrentRegion.Resize(, 1).Copy .Range("F1")
    '重複を削除
    .Range("F1").CurrentRegion.RemoveDuplicates 1, xlYes
  End With
  
  Dim D
  With Sheets("DB").Range("F1").CurrentRegion
    D = .Resize(.Rows.Count - 1).Offset(1, 0) '取引先の配列を作成
    .Clear 'セルに入力した取引先をクリア
  End With
  
  For i = 1 To 3
    
    '取引先でフィルタ
    Sheets("DB").Range("A1").AutoFilter 1, D(i, 1)
    'フィルタ結果を、別セルにコピー
    Sheets("DB").Range("A1").CurrentRegion.Copy Sheets("DB").Range("F1")
    Sheets("DB").Range("A1").AutoFilter 'オートフィルタを解除
    
    '請求書の入力欄をクリア
    Sheets("請求書").Range("A2,A10:E12").ClearContents
    
    '取引先を入力
    Sheets("請求書").Range("A2") = Sheets("DB").Range("F2")
    
    Dim A, B, C
    With Sheets("DB").Range("F1").CurrentRegion.Offset(1, 0)
      A = .Resize(.Rows.Count - 1).Columns(2) '品目
      B = .Resize(.Rows.Count - 1).Columns(3) '単価
      C = .Resize(.Rows.Count - 1).Columns(4) '数量
    End With
    
    Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
    Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
    Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
    
    Sheets("請求書").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = Range("A2")
    
    'コピーした値をクリア
    Sheets("DB").Range("F1").CurrentRegion.Clear
    
  Next
  
End Sub

では、VBAコードを実行してみます。

まずは、取引先リストを作成していきます。

取引先リストを作成

取引先の値を別セルにコピーをします。

取引先の値を別セルにコピーをします

コピーした値から重複する値を削除します。

コピーした値から重複する値を削除します

取引先のリストを配列に格納します。

取引先のリストを配列に格納します

コピーした値はクリアしておきます。

コピーした値はクリアしておきます

次は、配列をループして取引先ごとに請求書を作成していきます。

配列をループして取引先ごとに請求書を作成

配列をループして、取引先ごとに請求書を作成していきます。

配列をループして、取引先ごとに請求書を作成していきます

1つ目の取引先の請求書を、別シートに作成します。

1つ目の取引先の請求書を、別シートに作成します

2つ目の取引先の請求書を、別シートに作成します。

2つ目の取引先の請求書を、別シートに作成します

3つ目の取引先の請求書を、別シートに作成します。

3つ目の取引先の請求書を、別シートに作成します

これで、取引先リストを使って、複数シートに請求書を作成できます。

取引先リストを作成して、請求書を作成できた

取引先リストを使って、複数シートに請求書を作成できました

取引先リストを使って、複数シートに請求書を作成できました。

複数の請求書を複数ブックに作成

次は、取引先リストを作成して、「複数ブック」に請求書を作成してみます。

取引先ごとに、複数ブックに請求書を作成したい

複数ブックに、請求書を作成してみます。

複数ブックに、請求書を作成したいです

結果からみると、こんな感じで、複数ブックに請求書を作成できます。

取引先ごとに、複数ブックに請求書を作成してみます

では、VBAコードをみてみます。

VBAコード

取引先リストを作成して、複数ブックに請求書を作成する手順は、次のようになります。

  • 取引先の値を別セルにコピー
  • 取引先の値から重複を削除
  • 重複を削除した値を配列に格納
  • 取引先リストをループ
  • 取引先ごとに新規ブックに請求書を作成
  • 新規ブックを名前を付けて保存

という感じです。

Sub TEST7()
  
  With Sheets("DB")
    '取引先の値を、別セルにコピー
    .Range("A1").CurrentRegion.Resize(, 1).Copy .Range("F1")
    '重複を削除
    .Range("F1").CurrentRegion.RemoveDuplicates 1, xlYes
  End With
  
  Dim D
  With Sheets("DB").Range("F1").CurrentRegion
    D = .Resize(.Rows.Count - 1).Offset(1, 0) '取引先の配列を作成
    .Clear 'セルに入力した取引先をクリア
  End With
  
  For i = 1 To 3
    
    '取引先でフィルタ
    Sheets("DB").Range("A1").AutoFilter 1, D(i, 1)
    'フィルタ結果を、別セルにコピー
    Sheets("DB").Range("A1").CurrentRegion.Copy Sheets("DB").Range("F1")
    Sheets("DB").Range("A1").AutoFilter 'オートフィルタを解除
    
    '請求書の入力欄をクリア
    Sheets("請求書").Range("A2,A10:E12").ClearContents
    
    '取引先を入力
    Sheets("請求書").Range("A2") = Sheets("DB").Range("F2")
    
    Dim A, B, C
    With Sheets("DB").Range("F1").CurrentRegion.Offset(1, 0)
      A = .Resize(.Rows.Count - 1).Columns(2) '品目
      B = .Resize(.Rows.Count - 1).Columns(3) '単価
      C = .Resize(.Rows.Count - 1).Columns(4) '数量
    End With
    
    Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
    Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
    Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
    
    '新規ブックにコピーする
    Sheets("請求書").Copy
    '名前を付けて保存
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Range("A2") & ".xlsx"
    ActiveWorkbook.Close False '新規ブックを閉じる
    
    'コピーした値をクリア
    Sheets("DB").Range("F1").CurrentRegion.Clear
    
  Next
  
End Sub

では、VBAコードを実行してみます。

まずは、取引先データから重複を作成して、取引先のリストを作成します。

取引先リストを作成

取引先データから重複を作成して、取引先のリストを作成します

次に、新規ブックに1つ目の取引先の請求書を作成していきます。

新規ブックに1つ目の取引先の請求書を作成

1つ目の取引先の請求書を作成します。

1つ目の取引先の請求書を作成します

新規ブックに請求書をコピーします。

新規ブックに請求書をコピーします

新規ブックを名前を付けて保存します。

新規ブックを名前を付けて保存します

別ブックに名前を付けて保存できます。

別ブックに名前を付けて保存できます

新規ブックは閉じます。

新規ブックは閉じます

これで、1つ目の取引先で、新規ブックに請求書を作成できます。

同じように、2つ目と3つ目の取引先の請求書を作成していきます。

2つ目と3つ目の取引先の請求書を作成

2つ目の取引先の請求書を作成できます。

2つ目の取引先の請求書を作成できます

3つ目の取引先の請求書を作成できます。

3つ目の取引先の請求書を作成できます

これで、取引先ごとに複数ブックに請求書を作成できます。

取引先ごとに複数ブックに請求書を作成できた

複数ブックに請求書を作成できます。

複数ブックに請求書を作成できました

中身を確認してみます。

取引先ごとに複数ブックに請求書を作成できています

取引先ごとに複数ブックに請求書を作成できています。

複数の請求書をPDFで作成する

次は、取引先ごとに、複数の請求書をPDFで保存してみます。

まずは、結果からみてみます。

取引先ごとにPDFで請求書を作成したい

やりたい内容は、取引先ごとに、複数PDFに保存したいということになります。

取引先ごとに、複数PDFに保存してみます

取引先ごとに、複数PDFに保存することができます。

取引先ごとに、複数PDFに保存することができます

取引先ごとに、請求書をPDFで保存する手順は、次のようになります。

  • 取引先の値を別セルにコピー
  • 取引先の値から重複を削除
  • 重複を削除した値を配列に格納
  • 取引先リストをループ
  • 取引先ごとにPDFを作成

という感じです。

Sub TEST8()
  
  With Sheets("DB")
    '取引先の値を、別セルにコピー
    .Range("A1").CurrentRegion.Resize(, 1).Copy .Range("F1")
    '重複を削除
    .Range("F1").CurrentRegion.RemoveDuplicates 1, xlYes
  End With
  
  Dim D
  With Sheets("DB").Range("F1").CurrentRegion
    D = .Resize(.Rows.Count - 1).Offset(1, 0) '取引先の配列を作成
    .Clear 'セルに入力した取引先をクリア
  End With
  
  For i = 1 To 3
    
    '取引先でフィルタ
    Sheets("DB").Range("A1").AutoFilter 1, D(i, 1)
    'フィルタ結果を、別セルにコピー
    Sheets("DB").Range("A1").CurrentRegion.Copy Sheets("DB").Range("F1")
    Sheets("DB").Range("A1").AutoFilter 'オートフィルタを解除
    
    '請求書の入力欄をクリア
    Sheets("請求書").Range("A2,A10:E12").ClearContents
    
    '取引先を入力
    Sheets("請求書").Range("A2") = Sheets("DB").Range("F2")
    
    Dim A, B, C
    With Sheets("DB").Range("F1").CurrentRegion.Offset(1, 0)
      A = .Resize(.Rows.Count - 1).Columns(2) '品目
      B = .Resize(.Rows.Count - 1).Columns(3) '単価
      C = .Resize(.Rows.Count - 1).Columns(4) '数量
    End With
    
    Sheets("請求書").Range("A10").Resize(UBound(A, 1)) = A '品目
    Sheets("請求書").Range("D10").Resize(UBound(B, 1)) = B '単価
    Sheets("請求書").Range("E10").Resize(UBound(C, 1)) = C '数量
    
    'PDFで保存
    With Sheets("請求書")
      .ExportAsFixedFormat 0, ThisWorkbook.Path & "\" & .Range("A2") & ".pdf"
    End With
    
    'コピーした値をクリア
    Sheets("DB").Range("F1").CurrentRegion.Clear
    
  Next
  
End Sub

「.ExportAsFixedFormat」を使うと、PDFで保存することができます。

では、VBAコードを実行してみます。

まずは、取引先データから重複データを削除して、取引先のリストを作成します。

取引先リストを作成

取引先データから重複データを削除して、取引先のリストを作成します

1つ目の取引先のPDFを作成していきます。

1つ目の取引先のPDFを作成

1つ目の取引先の請求書を作成します。

1つ目の取引先の請求書を作成します

請求書シートを、PDFで保存します。

請求書シートをPDFで保存します

請求書シートを、PDFで保存できます。

請求書シートをPDFで保存できました

これで、1つ目の取引先で、請求書のPDFを作成することができました。

同じ手順で、2つ目と3つ目の取引先のPDFを作成していきます。

2つ目と3つ目の取引先のPDFを作成

VBAコードを実行していくと、2つ目の請求書をPDFで保存できます。

2つ目の請求書をPDFで保存できました

同じように、3つ目の請求書をPDFで保存できます。

3つ目の請求書をPDFで保存できました

3つ目の請求書をPDFで保存できました。

これで、取引先ごとに請求書を作成できます。

取引先ごとに請求書を作成できた

取引先ごとに、PDFで請求書を作成できます。

取引先ごとに、PDFで請求書を作成できました

1つ目の取引先のPDFデータです。

1つ目の取引先のPDFデータです

2つ目の取引先のPDFデータです。

2つ目の取引先のPDFデータです

3つ目の取引先のPDFデータです。

3つ目の取引先のPDFデータです

という感じで、取引先ごとに請求書をPDFで作成できました。

おわりに

この記事では、複数シートや複数ブック、PDFで請求書を作成する方法について、ご紹介しました。

Excel VBAを使って、請求書を自動で作成できると、業務を効率化することができます。

業務内容に応じて、複数シートや複数ブック、PDFで請求書を作成して、業務を効率化していきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す