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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
【お題】 ・存在しそうで存在しないモノマネ芸人の名前を教えてください
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
ACCESSのクエリで抽出したデータをWord文書へ差込印刷したいです。
Windows Me・NT・2000
-
AccessVBAから差し込みWORD起動について
Visual Basic(VBA)
-
アクセスのボタンから指定のワードファイルを開く
Access(アクセス)
-
-
4
ACCESSからVBAでWORDの印刷を..
その他(データベース)
-
5
ACCESSのレポートにWORDで作った文書を貼り付けるには?
Access(アクセス)
-
6
accessレポートにwordの文書を貼り付ける
その他(データベース)
-
7
ACCESS VBA からのワードファイルの起動
その他(データベース)
-
8
Accessのレポート出力をWordに出力する方法
その他(データベース)
-
9
ACCESS VBAからWordのテンプレートに
Visual Basic(VBA)
-
10
アクセスのレポートでレコード数をカウントしたい
その他(データベース)
-
11
(実行時エラー5852)ExcelデータをWordに差し込んだ後、Wordファイルを分割するマクロ
Word(ワード)
-
12
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
13
ACCESSのカレントレコードを、wordに差し込みたい
その他(Microsoft Office)
-
14
Accessのフォームでタブの色
Access(アクセス)
-
15
wordのマクロがわかりません。。。
Word(ワード)
-
16
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
17
アクセスVBAのMe!と[ ]
Access(アクセス)
-
18
フォームで入力しても反映されない
Access(アクセス)
-
19
Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。
Access(アクセス)
-
20
差し込み印刷の元データファイルの探し方
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「新規文書への差し込み」で「...
-
AccessからWordの差し込み印刷...
-
ワードかエクセルで、KOKU...
-
連絡先をあいうえお順にするに...
-
ラベルの差込印刷で2ページ目以...
-
筆王
-
A4を分割する方法
-
エクセル宛名ラベルが重複する
-
エーワンのラベルシール品番722...
-
自作でDVDラベル作り
-
VBA+VBSによる別インスタンスB...
-
Windows7&VB6(SP6)&Excel2000
-
ワード(エクセル)で名札を作成
-
CDの曲名のテンプレートを作り...
-
CDやDVDのラベルやジャケッ...
-
停止コードDRIVER IRQL_NOT_LES...
-
フラットファイルの背表紙部分...
-
Excel2019 非表示モジュール内...
-
DVDのタイトルを変更したい
-
Generic Host Process for Win3...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードの差し込み印刷で,ペー...
-
AccessからWordの差し込み印刷...
-
差込印刷の解除について
-
アクロバットライター
-
PDFの一部のみ印刷しない方法
-
「新規文書への差し込み」で「...
-
PDFにリンクをつける方法は?
-
ダウンロードしたPDFファイルの...
-
ワードに挿入したエクセル表の...
-
差し込み用のデータを変更して...
-
PDFについて教えてください。
-
パソコンで、スマートな枠、マ...
-
ワード2007で作成した文章の作...
-
「仕様説明書」(50ページ以上...
-
縦書きのテキストを作成したい
-
なぜワープロソフト等は級数指...
-
Wordへの差込印刷の方法に...
-
地域活動案内文書サンプル
-
インターネット上で古物をとり...
-
Web上で注文書のやり取りを完結...
おすすめ情報