VB6で計算したデータをAccess2000に入れ、そのデータをWord2000の差込印刷機能を利用して出力したいのですが、1回目は上手くいくのですが続けて2回目を実行すると実行時エラー’462’【リモートサーバーがないか、使用できる状態ではありません。】と表示されます。
With ActiveDocument.MailMerge '差込印刷の行でエラーが表示されます。
コードの抜粋は以下の通りです。

---ここまででデータを書き込みます。---
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents

wdDoc.Open FileName~---ここでWordファイルを開きます。---

With ActiveDocument.MailMerge '差込印刷
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = False
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With

Windows(wdfile).Activate
ActiveWindow.Close

~SaveAs FileName~'番号を付けて保存を行います。
wdDoc.Close 'Wordを終了させます。
wdApp.Quit
Set wdApp = Nothing
Set wdDoc = Nothing
長々と書いて申し訳ございませんが、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

もう一度、全部を書き直します。



もしこれでも失敗したら,
wdApp/wdDoc変数の宣言を見せてください。

Public Sub test()
  Dim wdApp  As Word.Application 'アプリケーション変数
  Dim wdDoc  As Word.Document  'ドキュメント変数
  
  Dim strFilePath1  As String  '読み込むドキュメントファイルのフルパス
  Dim strFilePath2  As String  '保存するドキュメントファイルのフルパス
  
  Dim wdfile As String      'ドキュメント名

  
'----- 注意 -----
'ファイル名をプログラムの途中で作成するより、プログラム変数/定数などに最初にセットしてあると、デバッグしやすいです
  '開くドキュメントフルパスを取得
  'strFilePath1 = Combo2.Text & Text8.Text & wdfile
  '保存するドキュメントフルパスを取得
  'strFilePath2 = Combo2.Text & Text9.Text & "\" & Text1.Text & ".DOC"
  strFilePath1 = "c:\test.doc"    'テスト用のドキュメントファイル1(開く用)
  strFilePath2 = "c:\test2.doc"    'テスト用のドキュメントファイル2(保存用)
  
  'デバッグ用(実践では削除してください)
  If vbCancel = MsgBox( _
      "ドキュメントファイル1:" & strFilePath1 & vbNewLine & _
      "ドキュメントファイル2:" & strFilePath2 & vbNewLine & _
      "処理をします。よろしいですか?" _
      , vbOKCancel Or vbQuestion, "ファイル1とファイル2の確認") Then
    Exit Sub
  End If
  
  
  'ワード起動
  Set wdApp = New Word.Application
  
  'ドキュメントを開く
  Set wdDoc = wdApp.Documents.Open( _
      FileName:=strFilePath1, _
      ConfirmConversions:=True, ReadOnly:=False, _
      AddToRecentFiles:=False, PasswordDocument:="", _
      PasswordTemplate:="", Revert:=False, _
      WritePasswordDocument:="", WritePasswordTemplate:="", _
      Format:=wdOpenFormatAuto)
  
  '差込印刷
  With wdDoc
    With .MailMerge
      .Destination = wdSendToNewDocument
      .MailAsAttachment = False
      .MailAddressFieldName = ""
      .MailSubject = ""
      .SuppressBlankLines = False
      With .DataSource
        .FirstRecord = wdDefaultFirstRecord
        .LastRecord = wdDefaultLastRecord
      End With
      .Execute Pause:=True
    End With
  End With
  
  '現在カレントのドキュメント(差し込まれたドキュメント)を保存
  wdApp.ActiveDocument.SaveAs _
      FileName:=strFilePath2, _
      FileFormat:=wdFormatDocument, LockComments:=False, _
      Password:="", AddToRecentFiles:=True, _
      WritePassword:="", ReadOnlyRecommended:=False, _
      EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, _
      SaveFormsData:=False, SaveAsAOCELetter:=False


  '全てのドキュメントを閉じる
  For Each wdDoc In wdApp.Documents
    wdDoc.Close SaveChanges:=False
  Next wdDoc
  
  'ワード終了
  wdApp.Quit
  
  '変数開放
  Set wdDoc = Nothing
  Set wdApp = Nothing
  
  MsgBox "終了"
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
毎回、丁寧に教えていただいて申し訳ございません。
非常に助かりました。

お礼日時:2001/11/19 16:14

すいません...



For Each wdDoc In wdApp.Documents
wdDoc.Saved = True
wdDoc.Close
Next wdDoc
なのですが、

Set wdDoc = wdApp.Documents
としているところを見ると
Word.Documents
として宣言してるのですね。

たぶん現状ではエラーが起こるかも?
なので、ドキュメンツではなくドキュメント変数を1つ用意してください。
Dim wdDoc2 As Word.Documents ← NG
Dim wdDoc2 As Word.Document ← OK

それで
For Each wdDoc2 In wdApp.Documents
wdDoc2.Saved = True
wdDoc2.Close
Next wdDoc
としてください。

この回答への補足

いつもすいません。上手く行きませんでした。
省略したファイルを開く場合と保存する場合ですが下に書いてある文で行っております。

【ファイルを開く】
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents

wdDoc.Open FileName:=Combo2.Text & Text8.Text & wdfile, ConfirmConversions:=True, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto

【差込印刷】
Set wdApp = New Word.Application
  ↓
ActiveWindow.Close
 (前述した内容です。)

【ファイル保存】
ChangeFileOpenDirectory Combo2.Text & Text9.Text '番号を付けて保存
ActiveDocument.SaveAs FileName:=Text1.Text & ".DOC", FileFormat:=wdFormatDocument, _
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False

wdDoc.Close 'Wordを終了させます。 ---以下前述したとおりです。
よろしくお願いいたします。

補足日時:2001/11/19 13:18
    • good
    • 0

全体的なプログラムを見てみないと、正確なことは言えないのですが・・・・


差込印刷を行うと、ドキュメントを閉じるだけでは、完全にはドキュメントを開放されないようです。

なので・・・
>wdDoc.Close 'Wordを終了させます。
>wdApp.Quit
としている部分を
For Each wdDoc In wdApp.Documents
  wdDoc.Saved = True
  wdDoc.Close
Next wdDoc
wdApp.Quit
と変更してみて下さい。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング