アクセス上からワードファイルを置換するにはどうすればよいのでしょうか。


アクセス上のテーブルに置換前と置換後のキーワードがあり、
置換する対象のファイルをワードで用意しています。

これらを使って、アクセスのフォーム上に用意したボタンを押下すると
対象のワードファイルを置換し、置換後に新しいワードファイルとして保存する
という機能を作りたいと考えています。

ワード上でVBAを使って置換する仕組みはいくつか見つけられたのですが、
アクセスからワードファイルを操作する方法がわかりません。

ご存知の方がいらっしゃいましたらご教示ください。
よろしくお願い致します。

※Office2003を使用しています。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/05/17 11:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:jccrh1 No.2

回答回数111ベストアンサー獲得回数19

ポイント35pt

OLE処理で行えばできます。

以下はサンプルプコード(関数にしました)です。

 

※ワードファイルはAccessのMDBと同じフルパスにしています。

 ファイル名はとりあえずTEST1.docにしました。

Sub 置換(置換前 As String, 置換後 As String)
  Dim wdObj As Object
  Set wdObj = CreateObject("Word.Application")
  With wdObj
    .Documents.Open FileName:=CurrentProject.Path & "\TEST1.doc"
    With .Selection.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = 置換前
       .Replacement.Text = 置換後
       .Wrap = wdFindContinue
      .MatchFuzzy = True
      .Execute Replace:=2
    End With
    .ActiveDocument.Save
    .Quit
  End With
  Set wdObj = Nothing
End Sub
id:mitwui

ご丁寧な解説感謝します。自分のケースに適用して作ってみます。ありがとうございます。

2009/05/16 22:30:08

その他の回答1件)

id:degucho No.1

回答回数281ベストアンサー獲得回数75

ポイント35pt

下記はExcel用ですが、Accessでも同様の手順です

http://q.hatena.ne.jp/1206705553

http://members.at.infoseek.co.jp/kenchan_h/index21.html

http://www.simple-sys.com/blog/2008/03/29/172/


1.Wordアプリケーションを起動

2.対象ファイルを開く

3.Documentオブジェクトに対して操作(置換に限らずWordのサンプルがいろいろ利用できます)

4.保存/終了


バージョン固定の場合参照設定してNew Word.Applicationとするほうが

コード補完が効くので便利です。

id:mitwui

複数の参考URLと解説ありがとうございます。参考にさせていただきます。

2009/05/16 22:28:13
id:jccrh1 No.2

回答回数111ベストアンサー獲得回数19ここでベストアンサー

ポイント35pt

OLE処理で行えばできます。

以下はサンプルプコード(関数にしました)です。

 

※ワードファイルはAccessのMDBと同じフルパスにしています。

 ファイル名はとりあえずTEST1.docにしました。

Sub 置換(置換前 As String, 置換後 As String)
  Dim wdObj As Object
  Set wdObj = CreateObject("Word.Application")
  With wdObj
    .Documents.Open FileName:=CurrentProject.Path & "\TEST1.doc"
    With .Selection.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Text = 置換前
       .Replacement.Text = 置換後
       .Wrap = wdFindContinue
      .MatchFuzzy = True
      .Execute Replace:=2
    End With
    .ActiveDocument.Save
    .Quit
  End With
  Set wdObj = Nothing
End Sub
id:mitwui

ご丁寧な解説感謝します。自分のケースに適用して作ってみます。ありがとうございます。

2009/05/16 22:30:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません