この記事では、MicrosoftExcelでVBAを使用して差し込み印刷を自動化する方法を学習します。

差し込み印刷:-これは、データの情報をテキストにマージしてからドキュメントを印刷するためのソースです。このような操作を行うために、MicrosoftWordを使用します。

簡単な演習で理解しましょう:-レポートシートにレター形式があり、VBAを介して差し込み印刷を適用し、レターの詳細も変更したいと考えています。

image 1

2枚あります。 1枚のシートには、手紙を送りたい詳細が記載されたデータが含まれています。最初のデータでは、列Aに名前、列Bに住所、列Cに都市、列Dの地域、列Eと列Fに郵便番号が含まれています。レポートシート内を移動するためのコマンドボタンが1つあります。

image 2

2 ^ nd ^シートは、2つのコマンドボタンを備えたレター形式です。データシート上を移動するための1つのボタンと、差し込み印刷のために機能する2番目のコマンドボタン

image 3

まず、メインデータのコマンドボタンのVBAコードを記述します。以下の手順に従う必要があります。-*最初に、ワークシートにコマンドボタンを挿入します。

  • [開発者]タブに移動し、Activexcontrolからコマンドボタンを挿入します。

  • コマンドボタンの名前を「Letter」に変更し、以下のマクロを割り当てます。-PrivateSub Main_data_Click()

Worksheets( “Report”)。Activate Range( “A19″)。Show End Subここで、レポートシートに2番目のコマンドボタンを挿入し、最初のシートに移動するマクロを割り当てます。以下の手順に従う必要があります。-*コマンドボタンの名前を「Data」に変更し、以下のマクロを割り当てます。-PrivateSub CommandButton2_Click()

Worksheets( “Main_Data”)。Activate Range( “A1″)。Show End Sub次に、以下の手順に従って、差し込み印刷のメインコードを記述します。-コマンドボタンを挿入し、名前を「LetterPrint」に変更します。以下のコードを割り当てます。-PrivateSubCommandButton1_Click()

Dim StartrowAs Integer、lastrow As Integer Dim MsgAs String Dim TotalrecordsAs String Dim name As String、Street_AddressAs String、city As String、region As String、country As String、postal As String Totalrecords = “= counta(Main_Data!A:A)”

Range( “L1″)= Totalrecords Dim mydate As Date Set WRP = Sheets( “Report”)

mydate = Date WRP.Range( “A9″)= mydate WRP.Range( “A9″)。NumberFormat = “[$ -F800] dddd、mmmm、dd、yyyy”

WRP.Range( “A9″)。Horizo​​ntalAlignment = xlLeft Startrow = InputBox( “印刷する最初のレコードを入力してください。”)

lastrow = InputBox( “印刷する最後のレコードを入力してください。”)

If Startrow> lastrow Then Msg = “ERROR”&vbCrLf& “開始行は最後の行よりも小さくする必要があります”

Msgbox Msg、vbCritical、 “ExcelTip”

End If For i = Startrow To lastrow name = Sheets( “Main_data”)。Cells(i、1)

Street_Address = Sheets( “Main_data”)。Cells(i、2)

city = Sheets( “Main_data”)。Cells(i、3)

region = Sheets( “Main_data”)。Cells(i、4)

国= Sheets( “Main_data”)。Cells(i、5)

postal = Sheets( “Main_data”)。Cells(i、6)

Sheets( “Report”)。Range( “A7″)= name&vbCrLf&Street_Address&vbCrLf&city&region&country&vbCrLf&postal Sheets( “Report”)。Range( “A11″)= “Dear”& “”&name& “、”

CheckBox1 = True If CheckBox1 Then ActiveSheet.PrintPreview Else ActiveSheet.PrintOut End If Next i Endサブコード説明:-最初に変数を定義し、次に日付と日付の形式を定義し、次に最後の行と開始行を定義します。次に、メッセージを送信するためのメッセージボックスを作成しました。次に、文字でキャプチャするデータと範囲を定義します。

  • コードを実行するには、キーボードのキーF5を押します。

  • 次に、最初のレコードポイントを入力する必要があります。その後、ポイントの最後のレコードを入力するための新しいメッセージボックスが表示されます。

image 4

image 5

  • そして、以下に示すドキュメントが表示されます

image 6

  • レターはメインデータに記載されている詳細に従って更新されます。

これは、MicrosoftExcelのVBAを介して差し込み印刷を自動化する方法です。