|
どなたもレスがついていないようですので・・
▼いなば さん:
>エクセルで物の在庫管理をしています。
>
>在庫の中から、いつ、どこへ、いくつ送付した。というのを管理しています。
>そこで、物を送るときに送付状(ワード文章)を出力して添付しています。
Excelで似たようなフォーマットを作るほうが、簡単だと思いますが。
>3.ワード文書内の日付、相手先、送付数を入れる欄がどこかと認識させるには
>どうすればいいのか?(ワードのVBAの範疇になる?)
自分もよくわからないので、特定の文字列を置換する方法でやってます。
良い方法があれば、ぜひ知りたいです。
Wordのマクロはあまり詳しくないので良くわかりませんが、
自分の使っているものをサンプルとして提示します。
参照設定 "MicroSoft Word 9.0 Object Library"を有効にしてください。
マクロのあるExcelと同じフォルダに"テスト.doc"を作成。
テスト.docの本文内に"<日付>""<件名>"をあらかじめ記載しておく。
Excelファイルに置換したい文字 A列:日付、B列:件名を入力。
マクロを実行すると"<日付>""<件名>"が置換された"件名".docが作成されます。
使用している一部分の為、同一ファイル名のチェックなどはやっていません。
Option Explicit
Sub Word_test()
Dim WoApp As Object
Dim WoObj As Object
Dim myPath As String
Dim R As Range
Dim Hizuke, Kenmei As String
Const DocName As String = "テスト.doc"
myPath = ThisWorkbook.Path
Set WoApp = CreateObject("Word.Application")
WoApp.Visible = True
With ActiveSheet
For Each R In .Range("A2", .Range("A65536").End(xlUp))
Hizuke = R.Value
Kenmei = R.Offset(, 1).Value
Set WoObj = WoApp.Documents.Open(myPath & "\" & DocName)
With WoObj
With .Content.Find
.Replacement.ClearFormatting
.Text = "<日付>"
.Replacement.Text = Hizuke
.Execute Replace:=wdReplaceAll
.Replacement.ClearFormatting
.Text = "<件名>"
.Replacement.Text = Kenmei
.Execute Replace:=wdReplaceAll
End With
.SaveAs Filename:=myPath & "\" & Kenmei & ".doc"
.Close
End With
Next R
End With
Set WoObj = Nothing
WoApp.Quit
Set WoApp = Nothing
End Sub
|
|