![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
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も見ています
-
今年はじめたいことは?
今年はこれをはじめたい!ということを教えてください!
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
ACCESSのクエリで抽出したデータをWord文書へ差込印刷したいです。
Windows Me・NT・2000
-
アクセスのボタンから指定のワードファイルを開く
Access(アクセス)
-
AccessVBAから差し込みWORD起動について
Visual Basic(VBA)
-
-
4
ACCESSからVBAでWORDの印刷を..
その他(データベース)
-
5
ACCESSのレポートにWORDで作った文書を貼り付けるには?
Access(アクセス)
-
6
ACCESS VBA からのワードファイルの起動
その他(データベース)
-
7
accessレポートにwordの文書を貼り付ける
その他(データベース)
-
8
ACCESS VBAからWordのテンプレートに
Visual Basic(VBA)
-
9
アクセス 壊れた? 「ファイルが見つかりません」
Access(アクセス)
-
10
Access2010でWORD差込VBA実行後終了
その他(Microsoft Office)
-
11
Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。
Access(アクセス)
-
12
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
13
ACCESSのカレントレコードを、wordに差し込みたい
その他(Microsoft Office)
-
14
アクセスのレポートでレコード数をカウントしたい
その他(データベース)
-
15
Accessのレポート出力をWordに出力する方法
その他(データベース)
-
16
Access ¥マークを表示しない
Excel(エクセル)
-
17
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
18
Access サブフォームでの選択行の取得
その他(データベース)
-
19
アクセスVBAのMe!と[ ]
Access(アクセス)
-
20
差し込み印刷の元データファイルの探し方
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードの差し込み印刷で,ペー...
-
AccessからWordの差し込み印刷...
-
PDFの一部のみ印刷しない方法
-
アクロバットライター
-
差込印刷の解除について
-
ワードかエクセルで、KOKU...
-
一点一葉とはどんな意味ですか?
-
エクセル宛名ラベルが重複する
-
ラベルの差込印刷で2ページ目以...
-
インデックスに印刷する方法
-
Excel2019 非表示モジュール内...
-
"echo off"の動きをLinuxのシェ...
-
VBA+VBSによる別インスタンスB...
-
Linux再起動後のエラーメッセー...
-
筆王
-
wordでラベル差込印刷時に右端...
-
Open officeのインストールが何...
-
ワード差し込み印刷:作成した...
-
「パラメータが無効のため、処...
-
ラベル屋さんでひとつひとつの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードの差し込み印刷で,ペー...
-
AccessからWordの差し込み印刷...
-
PDFの一部のみ印刷しない方法
-
差込印刷の解除について
-
「新規文書への差し込み」で「...
-
アクロバットライター
-
PDFにリンクをつける方法は?
-
ダウンロードしたPDFファイルの...
-
常用漢字以外は使ってはいけな...
-
PDFファイル
-
ワードかエクセルで、KOKU...
-
一点一葉とはどんな意味ですか?
-
エクセル宛名ラベルが重複する
-
ラベルの差込印刷で2ページ目以...
-
Excel2019 非表示モジュール内...
-
インデックスに印刷する方法
-
連絡先をあいうえお順にするに...
-
筆王
-
DVDのタイトルを変更したい
-
エクセルでマイタックラベルへ...
おすすめ情報