Excel VBA質問箱 IV

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

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


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

【46708】エクセルVBAからワードVBAをたたく方法を kmkm 07/2/13(火) 0:30 質問[未読]
【46709】Re:エクセルVBAからワードVBAをたたく方法を ichinose 07/2/13(火) 7:51 発言[未読]
【46710】Re:エクセルVBAからワードVBAをたたく方法を kmkm 07/2/13(火) 8:35 質問[未読]
【46711】Re:エクセルVBAからワードVBAをたたく方法を MOON 07/2/13(火) 9:13 回答[未読]
【46713】Re:エクセルVBAからワードVBAをたたく方法を kmkm 07/2/13(火) 9:41 質問[未読]
【46714】Re:エクセルVBAからワードVBAをたたく方法を MOON 07/2/13(火) 9:56 回答[未読]
【46721】Re:エクセルVBAからワードVBAをたたく方法を kmkm 07/2/13(火) 11:19 質問[未読]
【46722】Re:エクセルVBAからワードVBAをたたく方法を MOON 07/2/13(火) 12:01 回答[未読]
【46752】Re:エクセルVBAからワードVBAをたたく方法を kmkm 07/2/14(水) 8:03 お礼[未読]

【46708】エクセルVBAからワードVBAをたたく方法を
質問  kmkm  - 07/2/13(火) 0:30 -

引用なし
パスワード
   エクセルVBAからワードVBAをたたく方法を教えてください。

やりたいことは、

1.エクセルのセルに文字列を記入
以下、マクロで
2.ワードを開いて貼り付け
3.ワードVBAのモジュールをキック
4.結果をエクセルの新しいシートへ展開

なんてことは可能でしょうか?

3.の部分でワード特有の処理を入れられるようにしたいのです。
わかる方教えていただければ助かります。

【46709】Re:エクセルVBAからワードVBAをたたく方...
発言  ichinose  - 07/2/13(火) 7:51 -

引用なし
パスワード
   ▼kmkm さん:
おはようございます。


>エクセルVBAからワードVBAをたたく方法を教えてください。

↑これは、
www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=34693;id=excel

これが参考になりませんか?

>
>やりたいことは、
>
>1.エクセルのセルに文字列を記入
>以下、マクロで
>2.ワードを開いて貼り付け
>3.ワードVBAのモジュールをキック
>4.結果をエクセルの新しいシートへ展開
>
>なんてことは可能でしょうか?
>
>3.の部分でワード特有の処理を入れられるようにしたいのです。

掲載Urlの手法で出来そうですが、

>3.ワードVBAのモジュールをキック
>4.結果をエクセルの新しいシートへ展開

ここの箇所ですが、
呼び出したWordマクロ内で今度は、Excelのインスタンスを作成して、
結果を出力するような構造にはしないで下さい。

【46710】Re:エクセルVBAからワードVBAをたたく方...
質問  kmkm  - 07/2/13(火) 8:35 -

引用なし
パスワード
   ichinose さん

おはようございます。
早々のご回答、ありがとう御座います。

>>エクセルVBAからワードVBAをたたく方法を教えてください。
>
>↑これは、
>www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=34693;id=excel
>
>これが参考になりませんか?
>

参考になりました。ワードVBAのキックは問題ないようですね。

>>
>>やりたいことは、
>>
>>1.エクセルのセルに文字列を記入
>>以下、マクロで
>>2.ワードを開いて貼り付け
>>3.ワードVBAのモジュールをキック
>>4.結果をエクセルの新しいシートへ展開
>>

しかし、エクセルの文字列をワードにどうもって行けば良いのでしょうか?
(基本的なことなのかもしれませんが。)

エクセルで、
cells(1,1).copy

ワードで、
ActiveDocument.Range.Paste

をしてもうまくいきませんでした。

【46711】Re:エクセルVBAからワードVBAをたたく方...
回答  MOON  - 07/2/13(火) 9:13 -

引用なし
パスワード
   こんにちは。
横から失礼します。

>エクセルの文字列をワードにどうもって行けば良いのでしょうか?

アクティブシートのA1:A5の内容を、コピー&ペーストで
ワードのカーソルのあるところに貼り付けるなら、
以下のような感じで出来ます。

For Each r In ActiveSheet.Range("A1:A5")
r.Copy
wdDoc.ActiveWindow.Panes(1).Selection.Paste
Next

また、コピペじゃなくても、

For Each r In ActiveSheet.Range("A1:A5")
wdDoc.ActiveWindow.Panes(1).Selection.TypeText Text:=r.Value & vbCr
Next

でもいけそうです。

【46713】Re:エクセルVBAからワードVBAをたたく方...
質問  kmkm  - 07/2/13(火) 9:41 -

引用なし
パスワード
   MOON さん

>エクセルの文字列をワードにどうもって行けば良いのでしょうか?

上記、解決しました!ありがとうございます。


あと、何度も申し訳ないのですが、
ワードの文字列をエクセルに持ってくるにはどうしたらいいでしょうか?

【46714】Re:エクセルVBAからワードVBAをたたく方...
回答  MOON  - 07/2/13(火) 9:56 -

引用なし
パスワード
   >ワードの文字列をエクセルに持ってくるにはどうしたらいいでしょうか?

以下のような感じで、どうでしょう?

With wdDoc.Range
 For i = 1 To .Sentences.Count
  objSheet.Cells(i, 1).Value = .Sentences(i)
 Next
End with

【46721】Re:エクセルVBAからワードVBAをたたく方...
質問  kmkm  - 07/2/13(火) 11:19 -

引用なし
パスワード
   MOON さん

下記、ありがとうございます。

ですが、うまく動きません。
ブックやシートを指定することは可能なんでしょうか?

>With wdDoc.Range
> For i = 1 To .Sentences.Count
>  objSheet.Cells(i, 1).Value = .Sentences(i)
> Next
>End with

以上です、宜しくお願い致します。

【46722】Re:エクセルVBAからワードVBAをたたく方...
回答  MOON  - 07/2/13(火) 12:01 -

引用なし
パスワード
   >ですが、うまく動きません。
>ブックやシートを指定することは可能なんでしょうか?
>
>>With wdDoc.Range
>> For i = 1 To .Sentences.Count
>>  objSheet.Cells(i, 1).Value = .Sentences(i)
>> Next
>>End with

省略して書きましたけど、
上記のobjSheetはオブジェクト変数ですから、
実際に試す時には、↓のような感じで、
実際のブックやシートを代入して下さい。

Dim objSheet As Worksheet
Set objSheet = ThisWorkbook.Sheets("Sheet1")

【46752】Re:エクセルVBAからワードVBAをたたく方...
お礼  kmkm  - 07/2/14(水) 8:03 -

引用なし
パスワード
   MOON さん

いろいろ、細かに教えていただき、ありがとうございます。
知識不足で申し訳ないです。

可能なことは、わかりましたので、
作りこんで行きたいと思います。

ありがとうございました。

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