MS-Word差し込み印刷データソースのすべての行に対して繰り返し処理を行い、関連するデータをXMLに抽出します。Wordの差し込み印刷データソースをプログラムで検査する
Imports Microsoft.Office.Interop
Do
objXW.WriteStartElement("Recipient")
Dim objDataFields As Word.MailMergeDataFields = DataSource.DataFields
For Each FieldIndex As Integer In mdictMergeFields.Keys
strValue = objDataFields.Item(FieldIndex).Value
If Not String.IsNullOrEmpty(strValue) Then
strName = mdictMergeFields(FieldIndex)
objXW.WriteElementString(strName, strValue)
End If
Next
objXW.WriteEndElement()
If DataSource.ActiveRecord = LastRecord Then
Exit Do
Else
DataSource.ActiveRecord = Word.WdMailMergeActiveRecord.wdNextDataSourceRecord
End If
Loop
をそして、それは少し低迷(各行に対して約1秒)であることが判明:
私は現在、このコードを使用しています。それをもっと速くする方法はありますか?
私のファンタジーは、MailMergeDataSource.ToDatatable
のような機能を見つけて、データテーブルを検査しています。
私はちょうど「」=私のアプリ上でプロファイラを使用して strValueにして、それを交換し、問題行 が strValueに= objDataFields.Item(FieldIndexに).Valueの であることが判明 は、高速燃えるアプリケーションを作ります! –