0

私のシナリオは、メールのマージ中にプロンプ​​トが表示されたら自動的に[はい]を選択するExcelVBAで説明されているシナリオと似ています、ただし、マージするデータを含むAccessデータベースからVBAを実行しており、クエリは複雑でODBCで表示されないため、(これは関連している可能性があります)マージはDDEデータ接続を使用しています。コンピューターの知識があまりない人が使用するAccessランタイムアプリケーションからWordメールのマージを実行しようとしているので、不要なダイアログと混同しないようにしたいと思います。前の質問への回答は、クエリを開くことを許可するプロンプトを防ぐことで実際に機能し、他のすべては正常に行われますが、プロシージャがヒットすると、Mergeは「データソースなし」エラーを返します。行を実行します。クエリプロンプトは実際に抑制されているようですが、クエリは開かれていません。

' open the mail merge layout file
objWord.Visible = True ' for now
lngAlerts = objWord.DisplayAlerts
objWord.DisplayAlerts = False
objWord.Documents.Add strInFileName
objWord.DisplayAlerts = lngAlerts

With objWord.ActiveDocument.MailMerge
    .MainDocumentType = 0 ' wdFormLetters
    .Destination = 0 ' wdSendToNewDocument
    .SuppressBlankLines = True
    .Execute Pause:=False
End With

誰かがこれに光を当てることができますか?

4

1 に答える 1

0

ダイアログがバイパスされると、ユーザーが [いいえ] ボタンを押したかのようになります。Microsoft の KB 記事を参照してください: http://support.microsoft.com/kb/825765

つまり、この記事で説明されているレジストリ値を設定できない限り、コードはおそらく何よりも先に OpenDataSource 呼び出しを発行する必要があります。

于 2012-12-21T17:25:36.827 に答える