
Access初心者です。
使用バージョンは、Access・Wordともに2007です。
Accessのクエリー/テーブルをWord文書に差し込み、Accessから起動してその差し込み文書を印刷したいのですが、うまくいきません。
Getobjectを使ってWordの差し込み文書テストを印刷する以下のようなプロシジャを作成しました。
予め、手動でWordを起動してから、このプロシジャを実行すると、文書『テスト』を開く前に「次の文書を開くと次のコマンドが実行されます。Select*fromテーブル名 データベースのデータが文書に挿入されます続行しますか?」のメッセージが表示されて応答確認が来るのですが、Wordを起動せずに実行すると、上記のメッセージは表示されず、テーブル内のデータに更新がかかっているにもかかわらず、上記メッセージで「いいえ」と応答したのと同様の状態で印刷されます。
はたして、こんなプロシジャでよいのか、使用方法が間違っているのかすら見当がつきません。どなたかアドバイスをお願いいたします。
(作成したプロシジャ)
On Error GoTo エラー発生
Dim WordFilePass As String
WordFilePass = "C:\Users\User1\Documents\テスト.docx"
Dim MyWord As Word.Application
Set MyWord = GetObject(, "Word.Application")
MyWord.Visible = True
MyWord.Documents.Open FileName:=WordFilePass
MyWord.ActiveDocument.PrintOut
MyWord.Application.Quit
Set MyWord = Nothing
エラー発生:
If Err.Number = 429 Then
Set MyWord = CreateObject("Word.Application")
Resume Next
Else
MsgBox "エラーNo : " & Err.Number & vbNewLine & vbNewLine & _
"エラー内容 : " & Err.Description
End If
No.3ベストアンサー
- 回答日時:
変数名がダブっていました。
下記*行変更下さい。
Private Sub InsertDoc(MyDataName As String) 'MyDataNameは、元データのテーブル又はクエリー名 *
Dim myWrd As Object 'オリジナル文書をセット
Dim myTMP As Object 'テンプレート文書用
Dim MyName As String 'テンプレート文書名
Dim myLooP As Long
Dim LineNum As Integer
'差込印刷のオリジナル文書
Const myFileP As String = "C:\差込印刷.doc"
'テンプレートを保存するフォルダパス(+\)
Const myPath As String = "C:\"
LineNum = DCount("*", MyDataName) 'テーブル又はクエリーのレコード数を取得 *
ありがとうございます。
たいへん参考になりました。試行錯誤しましたがおかげさまで、うまくいきました。
お礼がおそくなりもうしわけございませんでした。
No.2
- 回答日時:
私も同じことを行おうとして、質問を考えていました。
imogasiさんの回答は、大変参考となりました。ありがとうございました。
リンク先のコードから下記のような形にしてみました。
差し込み実行後、作成されたワード文書を印刷するとともに、ワードファイルとして保存します。印刷は確認していませんが、ファイルは問題なく作成できました。
このような回答の仕方がルール違反でしたら、お詫びします。
Private Sub InsertDoc(MyName As String) 'MyNameは、元データのテーブル又はクエリー名
Dim myWrd As Object 'オリジナル文書をセット
Dim myTMP As Object 'テンプレート文書用
Dim MyName As String 'テンプレート文書名
Dim myLooP As Long
Dim LineNum As Integer
'差込印刷のオリジナル文書
Const myFileP As String = "C:\差込印刷.doc"
'テンプレートを保存するフォルダパス(+\)
Const myPath As String = "C:\"
LineNum = DCount("*", MyName) 'テーブル又はクエリーのレコード数を取得
If LineNum = 0 Then
MsgBox "レコードがありません!", vbExclamation + vbOKOnly, "確認"
Exit Sub
End If
'ワードオブジェクトの取得
Set myWrd = GetObject(myFileP)
Set myTMP = GetObject(Class:="Word.Application")
'差込
For myLooP = 1 To LineNum 'レコード数だけループする
With myWrd
With .MailMerge
.Destination = 0
.SuppressBlankLines = True
With .DataSource
.FirstRecord = myLooP
.LastRecord = myLooP
End With
.Execute Pause:=False
End With
'文書の印刷、保存
MyName = myPath & "差込済み文書" & Format(Date, "yymmdd") & "_" & myLooP & ".doc"
myTMP.Application.ActiveDocument.PrintOut
myTMP.Application.ActiveDocument.SaveAs FileName:=MyName, FileFormat:=wdFormatDocument
myTMP.Application.ActiveDocument.Close
End With
Next
myWrd.Close
Set myTMP = Nothing
Set myWrd = Nothing
MsgBox LineNum & "個のファイル" & myPath & "差込済み文書" & Format(Date, "yymmdd") & "_1 - " & _
LineNum & ".doc が作成されました。"
End Sub
No.1
- 回答日時:
初心者と称して、こんなことをやろうとするのは無謀。
ワードの世界にプログラムで入るなら、ワードのVBAの知識が必要。この情報はWEBでも少ない(解説書では皆無?)、し、経験者も少ないと思う。
難しいことをやりたいなら、自分で苦労して勉強する(期間も当然かかる)のが筋。出来なければ、あきらめること。
ーー
ワードの差込印刷のコードはどうなるか
それをアクセスの世界からWord.Applicationの世界に入ったらどう修正が必要か
の情報を探すこと。
ーー
根本的に
アクセスの世界で
アクセスデータークエリで選択・順序ーレポート印刷
ではいけないのか
ーー
質問は
(1)アクセス起動ーワードに変化部分データー地はワード文書ー機能はワードのMailmerge か
(2)アクセス起動ーアクセスに変化部分データー地はワード文書ー機能はMailmerge か
(2)らしいね。
だったら
(3)前記 アクセスの世界で
アクセスデータークエリで選択・順序ーレポート印刷
の方が勉強が易しいと思う。
他ソフトと連携など先の先に勉強することだと思う。
こんな複雑なことをやる必要があるのは、質問者はソフト業界の社員かな。それなら先輩にそういう経験者がいるのではと思うのでその方に聞いたら。そういうパターンの質問ならここに質問することでは無い。個人なら他ソフトにまたがるような仕組みを複雑にしない選択を出来るだろうから、すること。
===
WEBでは、参考になりそうなのは
http://www.accessclub.jp/bbs5/0017/vba4974.html
ぐらいかな。
Googleで「ワード 差込印刷 VBA」で照会しましたか。
エクセルとの関連が多いようだが、丁寧に当たってみては。
アドバイスありがとうございます。
無謀ですか・・・。初心者ゆえのことです。
私はソフト業界の社員ではありません。諸事情により業務でいきなりAccessをする事になりました。
運用上の背景もありWordとの連携印刷を考えました。ネットで調べたらWordを印刷するサンプルが掲載されていたので、使ってみましたが知り合いに誰も聞く人がいないのでここで質問した次第です。
仰せの通り、別の方法も模索しつつ苦労してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Word(ワード) wordの差し込み印刷で困っています。助けてください。word2019です。 エクセルで作ったデータ 3 2023/03/17 13:51
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- プリンタ・スキャナー Wordで作った宛名ラベルを印刷しようと思って、プリンターの上のところにある、手差しトレイ的なところ 3 2022/11/17 18:40
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- 面接・履歴書・職務経歴書 履歴書をWordで作成しました セブンイレブンのネットプリントで印刷しようと思うのですが上質紙でプリ 5 2022/08/10 06:55
- 仕事術・業務効率化 文書作成の際の書体や書式について 1 2022/08/29 10:01
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスのボタンから指定のワードファイルを開く
Access(アクセス)
-
AccessVBAから差し込みWORD起動について
Visual Basic(VBA)
-
ACCESSのクエリで抽出したデータをWord文書へ差込印刷したいです。
Windows Me・NT・2000
-
-
4
ACCESS VBA からのワードファイルの起動
その他(データベース)
-
5
ACCESSからVBAでWORDの印刷を..
その他(データベース)
-
6
ACCESS VBAからWordのテンプレートに
Visual Basic(VBA)
-
7
ACCESSのレポートにWORDで作った文書を貼り付けるには?
Access(アクセス)
-
8
accessレポートにwordの文書を貼り付ける
その他(データベース)
-
9
アクセスVBAのMe!と[ ]
Access(アクセス)
-
10
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
11
Access ¥マークを表示しない
Excel(エクセル)
-
12
「RunSQL」と「Execute」の違い
Access(アクセス)
-
13
アクセス・テーブルの改行についてです。
Access(アクセス)
-
14
AccessのマクロでWordを最前面に開く
Word(ワード)
-
15
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
16
Accessのレポート出力をWordに出力する方法
その他(データベース)
-
17
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
18
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
19
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
20
Access チェックボックスを利用した絞込検索のクエリ記述
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードの差し込み印刷で,ペー...
-
AccessからWordの差し込み印刷...
-
PDFにリンクをつける方法は?
-
PDFを元のFileに戻したい
-
「新規文書への差し込み」で「...
-
一点一葉とはどんな意味ですか?
-
ワードかエクセルで、KOKU...
-
エクセル宛名ラベルが重複する
-
インデックスに印刷する方法
-
ラベルの差込印刷で2ページ目以...
-
ステートメントの末尾が不正です
-
フラットファイルの背表紙部分...
-
筆王
-
《Excel2000》散布図のデータラ...
-
Excel2019 非表示モジュール内...
-
Wordで作った宛名ラベルを印刷...
-
Apache2.4の起動でエラー
-
名札差し込みで「すべてのラベ...
-
ラベル印刷に付いて
-
VBA+VBSによる別インスタンスB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードの差し込み印刷で,ペー...
-
AccessからWordの差し込み印刷...
-
PDFの一部のみ印刷しない方法
-
差込印刷の解除について
-
PDFにリンクをつける方法は?
-
「新規文書への差し込み」で「...
-
差し込み印刷でjpgを埋めこみたい
-
オープンオフィス エクセル ...
-
アクロバットライター
-
HP作成ソフトについて 初心者です
-
Web上で注文書のやり取りを完結...
-
Wordへの差込印刷の方法に...
-
クラリスで作成された文書をみたい
-
雑誌・印刷文書の読取り、エク...
-
ワードに挿入したエクセル表の...
-
数式ソフトは無いですか?
-
マックの定番ワープロって?
-
差し込み用のデータを変更して...
-
無料のPDF作成(クリエイト)ソ...
-
ダウンロードしたPDFファイルの...
おすすめ情報