アクセス上のテーブルに置換前と置換後のキーワードがあり、
置換する対象のファイルをワードで用意しています。
これらを使って、アクセスのフォーム上に用意したボタンを押下すると
対象のワードファイルを置換し、置換後に新しいワードファイルとして保存する
という機能を作りたいと考えています。
ワード上でVBAを使って置換する仕組みはいくつか見つけられたのですが、
アクセスからワードファイルを操作する方法がわかりません。
ご存知の方がいらっしゃいましたらご教示ください。
よろしくお願い致します。
※Office2003を使用しています。
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
下記は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とするほうが
コード補完が効くので便利です。
複数の参考URLと解説ありがとうございます。参考にさせていただきます。
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
ご丁寧な解説感謝します。自分のケースに適用して作ってみます。ありがとうございます。
ご丁寧な解説感謝します。自分のケースに適用して作ってみます。ありがとうございます。