MailMergeをWord2010で使用しようとしています。
次のようなTAB区切りファイルdatabase.datがあります。
ID Name Street
1 John FooBar 1
2 Smith FooBar 2
このファイルは、Wordで次のVBAコードとともに使用されます。
ActiveDocument.MailMerge.OpenDataSource Name:="C:/database.dat", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, Revert:=False, Format:=wdOpenFormatAuto
ファイルのフィールドをテキストで使用できるようになりました。したがって、すべてが正常に機能します。
問題:
VBAのデータをさらに詳しく説明する必要があるため、MergeField値を次のようにフェッチします。
Function getInfoField(mergefield As String)
On Error GoTo MergeFieldNotFound:
getInfoField = ActiveDocument.MailMerge.DataSource.DataFields(mergefield).Value
GoTo EndFunc
MergeFieldNotFound:
getInfoField = ""
EndFunc:
End Function
ただし、マージフィールド値の長さが255文字を超えると、切り捨てられます。だから私が挿入すると
MsgBox Len(ActiveDocument.MailMerge.DataSource.DataFields(mergefield).Value)
たとえば500文字の文字列に対して255を出力します。
ただし、単語ドキュメントに直接表示されるのは、マージフィールドの500文字すべてです。
質問:
VBAのマージフィールドから255文字を超える文字を取得するにはどうすればよいですか?