Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7243 / 13644 ツリー ←次へ | 前へ→

【40280】エクセルからワード文書を出力したい いなば 06/7/10(月) 15:47 質問[未読]
【40313】Re:エクセルからワード文書を出力したい ハチ 06/7/11(火) 12:10 回答[未読]
【40361】Re:エクセルからワード文書を出力したい いなば 06/7/12(水) 15:28 お礼[未読]

【40280】エクセルからワード文書を出力したい
質問  いなば  - 06/7/10(月) 15:47 -

引用なし
パスワード
   エクセルで物の在庫管理をしています。

在庫の中から、いつ、どこへ、いくつ送付した。というのを管理しています。
そこで、物を送るときに送付状(ワード文章)を出力して添付しています。

エクセルで送付日と送付数が確定したら、ワード文章に相手先と日付と送付数を入れて出力したいと考えています。
すでに送付状の雛形は作成してあります。
雛形のワード文章の送付日、相手先、送付数を入力する欄には○○と入れてあります。

そこで、質問ですが
1.ワード文章を編集・出力するときには、ワードを起動する必要があるか?
2.ワードを起動する必要があるとしたら、ワードを起動する方法(CreateObjecte?)
3.ワード文書内の日付、相手先、送付数を入れる欄がどこかと認識させるにはどうすればいいのか?(ワードのVBAの範疇になる?)

以上3点です。
よろしくお願いします。

【40313】Re:エクセルからワード文書を出力したい
回答  ハチ  - 06/7/11(火) 12:10 -

引用なし
パスワード
   どなたもレスがついていないようですので・・

▼いなば さん:
>エクセルで物の在庫管理をしています。
>
>在庫の中から、いつ、どこへ、いくつ送付した。というのを管理しています。
>そこで、物を送るときに送付状(ワード文章)を出力して添付しています。

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

【40361】Re:エクセルからワード文書を出力したい
お礼  いなば  - 06/7/12(水) 15:28 -

引用なし
パスワード
   ▼ハチ さん:
回答ありがとうございました。

まだ試してないですが、ワード文書内の置き換えは勉強になります。
エクセルで全部作るということがすっかり頭から消えてました。
エクセルで作ってしまえば簡単ですね。

せっかくワード文書内の置き換えを教えていただきながら、簡単な方法に逃げてしまいそうです・・・

7243 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free