こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルからワードのマクロを実行したい

1. ワードで作られた報告書の表の数値をエクセルにコピーし、
2. その数値を使ってエクセルのオートシェイプでグラフを描き、
3. グラフをもう一度ワードの所定の位置に図として貼りつける、
というマクロを作成しています。ワードの表をコピーするマクロと、エクセルでグラフを描くマクロは作成できました。

問題はエクセルのシートに配置したコマンドボタンをクリックすると、グラフの入ったセル範囲をコピーするまではできたのですが、その後にワードのマクロを指定して実行させる方法がわかりません。
1.→2.のエクセルのマクロを実行する方はauto_openで何とかなったのですが、2.→3.は既にワード文書は開かれていますし、auto_openでは1.の手順ができなくなってしまうので困っています。
もし、エクセルのマクロでワードを操作などできるのでしたらそれでもよいのですが…。

ワードのマクロは初挑戦で、色々サイトも探したのですが見つかりませんでした…。

使用していますのは、Windows98SE,Excel97,Word97です。
ご存知の方、どうぞよろしくお願い致します。

投稿日時 - 2003-09-05 13:42:50

QNo.647036

すぐに回答ほしいです

質問者が選んだベストアンサー

ふむ、よくわからないんですけど
> エクセルからワードのマクロを指定して実行させることができますでしょうか?

だけでしたら、

Dim wdApp As Word.Application

Set wdApp = GetObject(, "word.application")
wdApp.Run "wdtest"

てな感じで、開いてる Word の wdtest というマクロが
Excel側から実行できます。

投稿日時 - 2003-09-08 15:12:17

お礼

ご回答ありがとうございます。
試してみましたら、上手くいきました!
またわからないことがあれば、よろしくお願いいたします。

投稿日時 - 2003-09-09 15:53:35

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

むしろ、Word から Excel操作すればよいのでは。
Word の VBE の[ツール]→[参照設定]で
Microsoft Excel *.* Object Library に
チェックを入れてください。

Sub test()
  Dim xlApp As New Excel.Application
  
  ActiveDocument.Tables(1).Rows(1).Select
  Selection.Range.Copy
  With xlApp
    .Workbooks.Add
    .ActiveWorkbook.ActiveSheet.Paste
    .Charts.Add
    With .ActiveChart
      .SetSourceData Source:=xlApp.Worksheets(1).Range("A1").CurrentRegion
      .Location Where:=xlLocationAsObject, Name:="Sheet1"
    End With
    .ActiveSheet.ChartObjects(1).Copy
    Selection.EndKey Unit:=wdStory
    Selection.Paste
    .ActiveWorkbook.Close False
    .Quit
  End With
  Set xlApp = Nothing
End Sub

投稿日時 - 2003-09-05 14:49:01

お礼

ご回答ありがとうございます。

教えていただきましたマクロは、実行すると自動的にグラフウィザードの中にあるグラフをワードに貼りつけるまでしてしまうものなのですね。

ややこしい書き方をして申しわけありませんでしたが、グラフは「エクセルのオートシェイプで描いた」グラフなのです…。オートシェイプの円と線とテキストボックスを一部グループ化したものになります。

私の考えている手順というのは、
1. ワードの表に入力されている数値の一部をコピーして、既に作成してあるエクセルブックの所定のセルに貼りつけし、

2. (これはエクセルでの作業になります)
コントロールツールボックスのコマンドボタンをクリックすると、1.で貼りつけられた数値を使って、元々オートシェイプで作成されたグラフエリアの上に、オートシェイプの矢印とテキストボックスを使って線と項目を描き
(ここで手動でテキストボックスに修正を加える場合があります)、

3. もう一つのコントロールツールボックスのコマンドボタンをクリックすると、オートシェイプを含んだセル範囲をコピーして、ワード文書に、所定の位置と大きさで、コピーされたセル範囲を図として貼りつける。

というものです。グラフの手動での修正がなければワードから全部操作するのがいいのですが、使用する単位の変更などがあるので、こういった面倒な手順が必要になってしまいます…。

ですので、エクセルからワードのマクロを指定して実行させることができますでしょうか?
もしできないのであれば、ワード文書に「貼りつけ」ボタンを作成して、ユーザーにそれをクリックしてもらうという方法しかありませんでしょうか?

どうぞよろしくお願いいたします。

投稿日時 - 2003-09-08 10:53:00

あなたにオススメの質問