みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS VBA を勉強中のものです。

勉強のため購入した本(※VBA逆引き大全)からサンプルがダウンロードできたので,下記の構文で実行したところ,フォーム上の会社名を,Wordに「~様」と挿入することができました。

Private Sub cmd実行_Click()
Dim Appwo As Word.Application
Dim doc As Word.Document
Dim stPath As String
Dim stName As String

stName = Me.txt会社名
stPath = "C:\Users\pigo\Desktop\納品書.docx"

Set Appwo = CreateObject("Word.Application")
Set doc = Appwo.Documents.Open(stPath)
Appwo.Visible = True

With Appwo.Selection
.Find.Text = "様"
.Find.Execute
.InsertBefore stName
.Font.Size = 12
.Font.Bold = True
End With

Set Appwo = Nothing
Set doc = Nothing
End Sub

ここで質問なのですが,フォーム上には会社名に加え,そのほかにもWordへと挿入したいテキストボックス(※部署名,担当者名など)が複数存在します。そのような場合には,上記の構文はどのようにすればよいのでしょうか。

教えていただければ幸いです。

初心者で言葉足らずかも知れませんが、よろしくお願いします。

投稿日時 - 2011-02-06 21:54:44

QNo.6503226

困ってます

質問者が選んだベストアンサー

ahoai09さん こんにちは。

会社名は「様」を検索して「様」前に入力した会社名を入れています。
部署名,担当者名も何かの文字を検索して「その前に入力した文字」を設定するのでしょうか?

多分、部署名は「様」とか敬称を付けないので、違う方法にするのだと思います。
今回は「様」「部署名」「担当者名」を探して入力した文字を置き換えるようにプログラミングをしてみました。
本来は置き換える処理部分は共通モジュール(サブルーチン)にした方が良いと思いますが、単純に作成しています。
ヒントだけなので、ahoai09さん自身でわかりやすく修正してください。

Private Sub cmd実行_Click()
Dim Appwo As Word.Application
Dim doc As Word.Document
Dim stPath As String

stPath = "C:\Users\pigo\Desktop\納品書.docx"

Set Appwo = CreateObject("Word.Application")
Set doc = Appwo.Documents.Open(stPath)

Appwo.Visible = True
With Appwo.Selection
 .Find.Text = "様"
 .Find.Replacement.Text = Me.txt会社名 & "様"
 .Find.Execute Replace:=wdReplaceAll
End With
With Appwo.Selection
 .Find.Text = "部署名"
 .Find.Replacement.Text = Me.txt部署名
 .Find.Execute Replace:=wdReplaceAll
End With
With Appwo.Selection
 .Find.Text = "担当者名"
 .Find.Replacement.Text = Me.txt担当者名
 .Find.Execute Replace:=wdReplaceAll
End With

Set Appwo = Nothing
Set doc = Nothing
End Sub

投稿日時 - 2011-02-07 10:31:52

お礼

この度はご回答いただきありがとうございました。まわりに教えてくれる人もおらず,初めて質問してみましたが予想以上の回答内容で驚いてます。本日,ご回答いただいたとおりに実行したところうまくいきました。本当に助かりました。ありがとうございました。

投稿日時 - 2011-02-08 21:52:29

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

勉強なので、

部署だけ、担当者だけ、はできませんか?。

それで3つを見比べて変更箇所を突き止める。それでもダメなのか。

答えとなる構文聞いてから解析は、機能要件からどう記述したら?、の力はなかなかつきません。命令はどういう意味?はつくでしょうがー。両方必要です。

『プログラミング』しましょう。

INSERTBEFORE 会社名
が『様』の前に『会社名』だろうことは想像できますね?。

今の構文でわからない部分を聞く。

実行できた=理解した、でないですから。

投稿日時 - 2011-02-07 09:58:36

あなたにオススメの質問