Excel VBA質問箱 IV

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

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


41498 / 76732 ←次へ | 前へ→

【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

1 hits

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

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