以下の 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