0

以下の VB6 コードを C# に変換しようとしていますが、予想どおりいくつかの問題があります。誰でも私を助けることができますか?MailMerge ドキュメントでコーディングを試みるのはこれが初めてです。オブジェクトのセットアップを手伝ってくれるだけでも、oWord私はうまくいくはずです。ODBC 接続を介して 400 システムにクエリを実行することで、C# Windows フォーム アプリケーションの ListView コントロールにデータを入力することができました。次に、このデータを使用して MailMerge ドキュメントを実行する必要があります。

Dim oWD As Object
Dim oDoc As Object
oDoc.MailMerge.Execute

Set oWord = CreateObject("Word.application")
oWord.Visible = False
Set oDoc = oWord.Documents.Open(docpath & docname & ".doc")

 oWord.ActiveDocument.PrintOut Background:=False
 oWord.ActiveDocument.Saved = True
 oWord.ActiveDocument.Close
 oWord.Windows(1).Activate
 oWord.ActiveDocument.Saved = True
 oWord.ActiveDocument.Close
 oWord.Quit (wdDoNotSaveChanges)

Public Sub CommitGroup(ByVal FileSys As String)

   Set oWord = CreateObject("Word.application")
   oWord.Visible = False
   Set oDoc = oWord.Documents.Open(docpath & docname & ".doc")

   For i = 1 To counter

     oWord.ActiveDocument.MailMerge.DataSource.FirstRecord = i
     oWord.ActiveDocument.MailMerge.DataSource.LastRecord = i

     If FileSys = "NAI" Or FileSys = "NTM" Or FileSys = "PAI" Or FileSys = "PTM" Then
       idx1 = Format(oWord.ActiveDocument.MailMerge.DataSource.DataFields.Item(4).Value, "000000")
       idx2 = ""
       idx3 = ""
       FYIDocName = UCase(Mid(FileSys, 1, 1)) & "%" & idx1 & "%" & idx2 & "%" & idx3 & _
                   "%CORRESPONDENCE%OUTGOING - ACKNOWLEDGEMENT%" & Format(Now, "yyyy-MM-dd-hh.mm.ss") & "BATCH" & i
     Else
       idx1 = Format(oWord.ActiveDocument.MailMerge.DataSource.DataFields.Item(21).Value, "000000")
       idx2 = oWord.ActiveDocument.MailMerge.DataSource.DataFields.Item(4).Value
       idx3 = Format(oWord.ActiveDocument.MailMerge.DataSource.DataFields.Item(5).Value, "000000")
       FYIDocName = UCase(Mid(FileSys, 1, 1)) & "%" & idx1 & "%" & idx2 & "%" & idx3 & _
                   "%CORRESPONDENCE%OUTGOING - ACKNOWLEDGEMENT%" & Format(Now, "yyyy-MM-dd-hh.mm.ss") & "BATCH" & i
     End If
     oWord.ActiveDocument.MailMerge.Execute

     oWord.ActiveDocument.SaveAs FileName:="c:\temp\to fyi\" & Trim(FYIDocName) & "BATCH.doc"
     oWord.ActiveDocument.Close
     oWord.ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextDataSourceRecord
   Next


oWord.Quit (wdDoNotSaveChanges)

End Sub
4

0 に答える 0