どのようにMicrosoft ExcelでVBAによる自動化差し込み印刷に
この記事では、MicrosoftExcelでVBAを使用して差し込み印刷を自動化する方法を学習します。
差し込み印刷:-これは、データの情報をテキストにマージしてからドキュメントを印刷するためのソースです。このような操作を行うために、MicrosoftWordを使用します。
簡単な演習で理解しましょう:-レポートシートにレター形式があり、VBAを介して差し込み印刷を適用し、レターの詳細も変更したいと考えています。
2枚あります。 1枚のシートには、手紙を送りたい詳細が記載されたデータが含まれています。最初のデータでは、列Aに名前、列Bに住所、列Cに都市、列Dの地域、列Eと列Fに郵便番号が含まれています。レポートシート内を移動するためのコマンドボタンが1つあります。
2 ^ nd ^シートは、2つのコマンドボタンを備えたレター形式です。データシート上を移動するための1つのボタンと、差し込み印刷のために機能する2番目のコマンドボタン
まず、メインデータのコマンドボタンの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″)。HorizontalAlignment = 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を押します。
-
次に、最初のレコードポイントを入力する必要があります。その後、ポイントの最後のレコードを入力するための新しいメッセージボックスが表示されます。
-
そして、以下に示すドキュメントが表示されます
-
レターはメインデータに記載されている詳細に従って更新されます。
これは、MicrosoftExcelのVBAを介して差し込み印刷を自動化する方法です。