まりふのひと

Excel/住所録マクロでwinword.exeが終わらず苦労した

Excel2010対応の住所録マクロが完成した ので、「Wordで宛名印刷専用住所録」のWord文書化(現行バージョンはExcelブック)を図ろうと、町田駅で購入 した「逆引き!ビジネス大全」を参考にバージョンアップに着手した。
コーディングは1日で終わったが、テストすると「Wordが終わっていない?」とかいうメッセージが出る。タスクマネージャで見ると、何と winword.exe が5〜6個も起動している... 直感的に“Nothing”が無いせいだと思ったが、どこに入れていいかわからない。
ググっていたら、「VBからWordを操作する(起動・終了等の基本操作)」[VBレスキュー(花ちゃん)]がヒットした。
これを参考に手を加えたところ、winword.exe が終了するようになった。
プログラムは完成した が、手順が出来ていないので、正式アップは先になる。


 ポイントとなったコード

  1. Range("A1").Select
  2. Selection.CurrentRegion.Select
  3. With Selection
  4. .WrapText = True '折り返して全体を表示
  5. End With
  6. 'クリップボードにコピーする。
  7. Selection.Copy
  8. Set wdApp = CreateObject("Word.Application")  'Word起動
  9. wdApp.Documents.Add.Range.Paste
  10. With wdApp
  11. If Val(Application.Version) < 12 Then
  12. .Documents(1).SaveAs MYExcelBookPath & CONWordAddressBook
  13. Else
  14. .Documents(1).SaveAs2 Filename:=MYExcelBookPath & CONWordAddressBook _
  15. , FileFormat:=0
  16. End If
  17. .Documents(1).Close
  18. End With
  19. wdApp.Quit
  20. Set wdApp = Nothing