
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
長々と書いて申し訳ございませんが、よろしくお願いいたします。
No.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
No.2
- 回答日時:
すいません...
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を終了させます。 ---以下前述したとおりです。
よろしくお願いいたします。
No.1
- 回答日時:
全体的なプログラムを見てみないと、正確なことは言えないのですが・・・・
差込印刷を行うと、ドキュメントを閉じるだけでは、完全にはドキュメントを開放されないようです。
なので・・・
>wdDoc.Close 'Wordを終了させます。
>wdApp.Quit
としている部分を
For Each wdDoc In wdApp.Documents
wdDoc.Saved = True
wdDoc.Close
Next wdDoc
wdApp.Quit
と変更してみて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Word(ワード) wordの差し込み印刷で困っています。助けてください。word2019です。 エクセルで作ったデータ 3 2023/03/17 13:51
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
読み取り専用ファイルを上書き...
-
Excel VBAで作成したマクロをxl...
-
VBAで、強制保存してブックを閉...
-
VBSでHPを保存するにはど...
-
エクセルで「名前を付けて保存...
-
至急教えてください!プログラ...
-
プログラムについて
-
Pivot table で集計されたデー...
-
.NETアプリでパスワード等入力...
-
VBAでPDF作成をしたあと、指定...
-
エクセルでファイルの最終更新...
-
ファイルのダウンロード保存先...
-
vlan internal allocation poli...
-
teratarmでコマンド入力すると...
-
YAHAMA RTXシリーズのコマンド...
-
WindowsからSSHでサーバーにあ...
-
Edgeでダウンロード状況表示画...
-
マイドキュメントのフォルダの...
-
onedriveで同期解除をしたら、...
-
TXTファイルを上書き保存する前...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルの最終更新...
-
Excel VBAでほかのアプリケーシ...
-
Excel VBAで作成したマクロをxl...
-
VBAで、強制保存してブックを閉...
-
読み取り専用ファイルを上書き...
-
AccessVBAでレポートをPDFで出力
-
Pivot table で集計されたデー...
-
EclipseでJavaScriptファイルの...
-
エクセルで「名前を付けて保存...
-
VBAでPDF作成をしたあと、指定...
-
VBScriptで日本語が変です
-
【Excel VBA】自動的にバックア...
-
VBScriptでのSaveAsについて
-
webページの特定の部分だけ消し...
-
タイトルバーやメニューバーの...
-
ASPでファイルを保存するダイア...
-
vbaでIEの名前を付けて保存(A)...
-
ExcelVBAでデスクトップのPATH...
-
エクセル:マクロ:保存時に連...
-
Corel Digital Studioの動画をS...
おすすめ情報