Excel VBA質問箱 IV

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

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


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

【51218】ExcelでWord文書を作成したい ほびっと 07/9/4(火) 14:58 質問[未読]
【51219】Re:ExcelでWord文書を作成したい neptune 07/9/4(火) 15:19 発言[未読]
【51220】Re:ExcelでWord文書を作成したい ほびっと 07/9/4(火) 15:39 質問[未読]
【51221】Re:ExcelでWord文書を作成したい neptune 07/9/4(火) 16:13 発言[未読]
【51225】Re:ExcelでWord文書を作成したい ほびっと 07/9/4(火) 18:26 お礼[未読]
【51222】Re:ExcelでWord文書を作成したい 多摩川 07/9/4(火) 17:55 発言[未読]
【51224】Re:ExcelでWord文書を作成したい ほびっと 07/9/4(火) 18:25 お礼[未読]

【51218】ExcelでWord文書を作成したい
質問  ほびっと  - 07/9/4(火) 14:58 -

引用なし
パスワード
   ExcelでWord文書を作成したいと考えています。
内容は次のようなものです。
・ExcelでWord文書を新規作成
・作成したWord文書にExcelのセル"A1"の内容を文書として挿入。
・挿入した文書(段落)にスタイルを設定。
・Word文書にExcelのセル"A2"の内容を文書として挿入。
・挿入した文書(段落)にスタイルを設定。
・・・以下セル範囲終了まで繰り返す。

アドバイスいただきたくよろしくお願いします。

【51219】Re:ExcelでWord文書を作成したい
発言  neptune  - 07/9/4(火) 15:19 -

引用なし
パスワード
   ▼ほびっと さん:
こんにちは

私もWordVBAは使ったことないですが、Wordにもマクロの記録があります。
結構それで用は足りますよ。難点はマウスでの操作が記録できず全て
キーボードからの操作が必要ですけど。

後は、Excelからマクロの記録で作成されたVBAをOLEで使用できるように
改造したら良いだけです。

【51220】Re:ExcelでWord文書を作成したい
質問  ほびっと  - 07/9/4(火) 15:39 -

引用なし
パスワード
   neptuneさん、回答ありがとうございます。

Wordでのマクロの記録も試してみたのですが、うまくいきません。

ExcelでのWordの新規文書は作成できました。
Sub test()
  Dim oWord As Object
  Set oWord = CreateObject("Word.Application")
  oWord.Visible = True
  oWord.Documents.Add
End Sub
これにWordの記録(例下記)をどのように連結したら良いのでしょうか?
Sub Macro2()
  Selection.TypeText Text:="あいうえお"
  Selection.Style = ActiveDocument.Styles("見出し 1")
  Selection.TypeParagraph
  Selection.TypeText Text:="かきくけこ"
  Selection.Style = ActiveDocument.Styles("箇条書き")
  Selection.TypeParagraph
End Sub

【51221】Re:ExcelでWord文書を作成したい
発言  neptune  - 07/9/4(火) 16:13 -

引用なし
パスワード
   ▼ほびっと さん:
こんにちは

私もWordは記録に毛が生えた程度しか使ったことないのですが、OLEなので、
Selectionは複数のオブジェクトにありますから、Selectionではなく
その正式なオブジェクトからの参照にした方が良いでしょう。
ActiveDocumentも同様です。Range オブジェクトになるんですかね?
その方法は、Selection オブジェクトのHelpの解説に書かれており、
参考になりそうです。

これをやらなければ、恐らくWordのインスタンスへの参照が残ってしまいますので
確認しましょう。確認はWindowsタスクマネージャでできます。


>これにWordの記録(例下記)をどのように連結したら良いのでしょうか?
>Sub Macro2()
>  Selection.TypeText Text:="あいうえお"
>  Selection.Style = ActiveDocument.Styles("見出し 1")
>  Selection.TypeParagraph
>  Selection.TypeText Text:="かきくけこ"
>  Selection.Style = ActiveDocument.Styles("箇条書き")
>  Selection.TypeParagraph
>End Sub

【51222】Re:ExcelでWord文書を作成したい
発言  多摩川  - 07/9/4(火) 17:55 -

引用なし
パスワード
   ▼ほびっと さん:
以前、【48152】開くファイルの制御 を質問したことがあり、その知識からですが参考までに・・・

Sub test()
  Dim objWord As Object
  Dim objWordDoc As Object
  Dim WkSht As Worksheet
  Dim i As Long
  i = 1
  Set objWord = CreateObject("Word.Application")
  Set objWordDoc = objWord.Documents.Add
  objWord.Visible = True  
  Set WkSht = Workbooks("Book1.xls").Sheets("Sheet1")
  Do Until WkSht.Range("A" & i) = ""
    WkSht.Range("A" & i).Copy
    With objWord.Selection
      objWordDoc.Activate
      .PasteSpecial Link:=False, DataType:=20, Placement:=20, DisplayAsIcon:=False
      .TypeParagraph
      i = i + 1
    End With 'objWord.Selection
  Loop
  Set objWord = Nothing
  Set objWordDoc = Nothing
  Set WkSht = Nothing
End Sub

後は、仕様に合せて適当に手直しして下さい。

【51224】Re:ExcelでWord文書を作成したい
お礼  ほびっと  - 07/9/4(火) 18:25 -

引用なし
パスワード
   多摩川さん、ありがとうございます。
このサンプルコードで何とかできそうです。
助かりました。やってみます。

【51225】Re:ExcelでWord文書を作成したい
お礼  ほびっと  - 07/9/4(火) 18:26 -

引用なし
パスワード
   neptuneさん、ありがとうございます。

Selection オブジェクトのHelp見てみます。



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