0

興味深い質問がありますが、どこにも答えが見つかりませんでした。約 2000 通の手紙を印刷する必要があり、もちろん差し込み印刷で行います。問題: すべてを PDF 形式で印刷する必要があります。Word で VBA マクロを使用して単一の文字を取得する必要があることがわかりました (1 つのドキュメントで大量の文字を取得するのではありません)。これは既に機能しています。しかし、それらを自動的にpdfに転送する方法がわかりませんでした。

誰かがアイデアを持っていて、私を助けることができますか? 私はあなたの助けに感謝します。

これまでに得たもの(差し込み印刷で単一のドキュメントを作成するため):

    Sub EinzelDatei() 

    Dim actpath As String, Dateiname As String 
    Dim fs As Object 
    Dim LetzterRec As Long 


    Const path As String = "D:\Test\" 

    On Error GoTo 0 

    Application.ScreenUpdating = False 
    Application.Visible = False 

    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord 
    LetzterRec = Word.ActiveDocument.MailMerge.DataSource.ActiveRecord 

    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord 

    With ActiveDocument.MailMerge 
        .DataSource.ActiveRecord = wdFirstRecord 
        Do 
            If .DataSource.ActiveRecord > 0 Then 
                .Destination = wdSendToNewDocument 
                .SuppressBlankLines = True 

               With .DataSource 

                    actpath = path & "\"          'Der aktuelle Pfad wird zusammengesetzt 

                    Set fs = CreateObject("Scripting.FileSystemObject") 
                    If fs.folderexists(actpath) = False Then MkDir (actpath) 'Wenn der Pfad         noch nicht existiert wird er jetzt erstellt 


                    .FirstRecord = .ActiveRecord 
                    .LastRecord = .ActiveRecord 

                Dateiname = actpath & _ 
                    .DataFields("No").Value & "-" & _ 
                    .DataFields("Surname").Value & "," & _ 
                    .DataFields("First_Name").Value & ".docx"                  'Dateiname =                 Name, Vorname.doc 
                End With 
                .Execute Pause:=False 

                ActiveDocument.SaveAs FileName:=Dateiname                   '
                ActiveDocument.Close False 
            End If 

        If .DataSource.ActiveRecord < LetzterRec Then 
             .DataSource.ActiveRecord = wdNextRecord 
          Else 
             Exit Do 
          End If 
       Loop 


    End With 


    MsgBox ("Erledigt") 
    Application.Visible = True 
    Application.ScreenUpdating = True 

    End Sub

前もって感謝します!!!

4

3 に答える 3

0

少し単純ですが、デフォルトのプリンターを PDF クリエーターに設定し、印刷機能を使用するだけです。2010 年には、マージが完了すると、印刷または編集オプションが表示されます。

于 2013-12-16T21:43:44.530 に答える