[リストへもどる]
一括表示

投稿時間:2003/02/24(Mon) 07:07
投稿者名:学生
Eメール:sachibow@cox.net
URL :
タイトル:
VBと差し込み印刷
初めまして。
困りに困って、こちらのサイトに辿り着きました。

少し伺いたいのですが、今、VBでアプリケーションを作っています。
それで、単純なものなんですが、コマンドは1つ。
それをクリックすると、AccessのFileとつながったWordのドキュメントが開いて、
Userは、差し込み印刷フィールドの挿入をクリックするだけで、後はフィールドの
配置をするだけというCodeを書きたいのですが、自分なりに頑張った結果、
Wordのドキュメントは開くものの、なぜかAccessのファイルと連動していないためか、
差し込み印刷フィールドの挿入がクリックできません。
結局、自分でブラウズして、Accessファイルとつなげなければいけないと
いう状態です。

いろいろ探していた時に、http://support.microsoft.com/?kbid=285332
で、一番参考になりそうなCodeも見つけたのですが、なかなか上手く
動いてくれません・・・・。

もし、何かご存知の方がいらしたら、是非アドバイスお願いします。
よろしくお願いいたします。

投稿時間:2003/02/24(Mon) 10:16
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBと差し込み印刷
>番参考になりそうなCodeも見つけたのですが、なかなか上手く
>動いてくれません・
こう言った質問される場合、何が、どう、うまく動かないか、又解らないかを具体的に
説明しないと答えようがないかと思います。(参考コードが掲載されている事だし)
又、貴方の環境、等も記入して下さい。

ここの[Excel&Word関係]の[Wordの差し込み印刷機能を使って「宛て名ラベル」を印刷する]
は、Excelで作成した住所録を使用して差込印刷を行っておりますが、方法は参考になるかと
思います。

投稿時間:2003/02/24(Mon) 11:13
投稿者名:学生
Eメール:sachibow@cox.net
URL :
タイトル:
Re^2: VBと差し込み印刷
返信ありがとうございます。

うまく動かない−ワードは起動するのですが、そこにAccessのFileがつながって
        くれないというところで、とまっています。

OSはWindowsのXP、VBは6.0を使用しています。
−−−−−−−−−−−−−−−−−−−−−−−−
Dim WithEvents oApp As Word.Application

Private Sub Form_Load()
     'Start Word.
     Set oApp = CreateObject("Word.Application")
End Sub

Private Sub Command1_Click()

   Dim oMainDoc As Word.Document
   Dim oSel As Word.Selection
   Dim sDBPath As String

  
   Set oMainDoc = oApp.Documents.Add

   With oMainDoc.MailMerge

      .MainDocumentType = wdFormLetters

    
      sDBPath = "C:\db1.mdb"
      .OpenDataSource Name:=sDBPath, _
      SQLStatement:="SELECT * FROM [Table1]"

   End With

  
   With oMainDoc
      .MailMerge.Destination = wdSendToNewDocument
      .MailMerge.Execute Pause:=False
   End With

End Sub


Private Sub oApp_MailMergeAfterMerge(ByVal Doc As Word.Document, ByVal DocResult As Word.Document)

   'Doc.Close False
   oApp.Visible = True
   MsgBox "Mail Merge Complete: " & oApp.ActiveDocument.Name

End Sub

Private Sub Form_Unload(Cancel As Integer)
   Set oApp = Nothing
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−−
これが、Codeなのですが、これを使うと、なんとか
上手くAccessとつながって差し込み印刷フィールドがでてきてくれました。
でも、まだ問題があって、なぜかWordのDocumentが2つでてきてしまいます。

初心者なものですみません。
アドバイス等あれば、よろしくお願いします。

投稿時間:2003/02/24(Mon) 11:25
投稿者名:とろ
Eメール:
URL :
タイトル:
Re^3: VBと差し込み印刷
> なぜかWordのDocumentが2つでてきてしまいます。

差し込み印刷を行った場合、そういうものです。

定型書簡1と文書1というものができていると思いますが、
この場合、文書1にフォーマット(フィールドの定義など)を記述し、
文書1とデータベースを結合した結果を定型書簡1として作成しています。

本当ならば、 MailMergeAfterMerge イベントで文書1をクローズしているはずなのですが、
あなたのコードではコメントにしてありますね。私の環境 (Word97) では、
Word.Application オブジェクトには、 MailMergeAfterMerge イベントがないみたいです。

投稿時間:2003/02/24(Mon) 11:38
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: VBと差し込み印刷
> OSはWindowsのXP、VBは6.0を使用しています。
差込印刷はWordの機能を使っているのでWordのバージョンを記入して
頂かないとWord2000とWord2002ではWordの差込印刷事態が違ってきて
いますし、データの扱い方大きく違うようです。
従って当然VBから操作する場合も違ってくるかと思います。

投稿時間:2003/02/24(Mon) 13:43
投稿者名:学生
Eメール:sachibow@cox.net
URL :
タイトル:
Re^4: VBと差し込み印刷
とろさん、花ちゃんさん、返信ありがとうございます。

>本当ならば、 MailMergeAfterMerge イベントで文書1をクローズしているはずなのですが

というのも、Doc.Close False をコメントにしておかないと、走らせた時に、Errorが出て、
でてくる1つの文書には、差し込み印刷のフィールドの挿入ができない状態になって
しまうんです。

> 差込印刷はWordの機能を使っているのでWordのバージョンを記入して
> 頂かないとWord2000とWord2002ではWordの差込印刷事態が違ってきて
> いますし、データの扱い方大きく違うようです。

当方、Word2002を使用しています。

でてくるWordの文書をAccessのFileとつながった文書のみにする方法は
あるのでしょうか?

何度もすみませんが、もしご存知でしたら教えていただけると
助かります。
よろしくお願いします。

投稿時間:2003/02/24(Mon) 20:18
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: VBと差し込み印刷
> というのも、Doc.Close False をコメントにしておかないと、走らせた時に、Errorが出て、
> でてくる1つの文書には、差し込み印刷のフィールドの挿入ができない状態になって
> しまうんです。

MSのサンプルを試してみましたが上記エラーはでませんでした。

> でてくるWordの文書をAccessのFileとつながった文書のみにする方法は
> あるのでしょうか?

とろさんが書いておられたように差込印刷する場合2種類の文書ファイルが必要です。
又、どうせ自動で差込印刷するなら両方とも表示せずに印刷すればいいのでは、なぜ2種類だと
問題があるのですか?
どうしてもなら差込先を新規文書にせず、プリンタに設定したらどうですか?
プリンター以外ではFax と Mail が指定できたと思います。

※ 他の掲示板にも投稿されていましたが、マルチポストはマナー違反です。せめて返信や解決報告
  を忘れずしてくださいね

投稿時間:2003/02/25(Tue) 06:23
投稿者名:学生
Eメール:sachibow@cox.net
URL :
タイトル:
Re^6: VBと差し込み印刷
> とろさんが書いておられたように差込印刷する場合2種類の文書ファイルが必要です。
 
 まだ、差し込み印刷の機能を十分理解していないので、なぜ2種類必要なのかまだ
 理解できていないのですが、差し込み先をプリンタに設定してみます。

> ※ 他の掲示板にも投稿されていましたが、マルチポストはマナー違反です。せめて返信や解決報告
>   を忘れずしてくださいね

 今回、初めて、こういった掲示板を利用させていただいたので、マルチポストがマナー違反
 だと知りませんでした・・。すみませんでした。
 今後、マナーをしっかり守って利用させていただきます。。 
 返信、解決報告もさせていただきます。他サイトにはもうしてあります。
 結局、返信をいただけたのは、こちらのサイトだけでしたが。
 
花ちゃんさん、とろさん、ありがとうございました。