- ベストアンサー
エクセルからワードのマクロを実行する方法や注意点
- ワードで作られた報告書の表の数値をエクセルにコピーし、その数値を使ってエクセルのオートシェイプでグラフを描いて、またワードの所定の位置に図として貼り付けるマクロを作成しています。
- エクセルのシートに配置したコマンドボタンをクリックすると、グラフの入ったセル範囲をコピーすることはできますが、その後にワードのマクロを指定して実行させる方法がわかりません。
- Windows98SE, Excel97, Word97を使用しており、ワードのマクロは初挑戦で、サイトを探しても解決策が見つかりませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ふむ、よくわからないんですけど > エクセルからワードのマクロを指定して実行させることができますでしょうか? だけでしたら、 Dim wdApp As Word.Application Set wdApp = GetObject(, "word.application") wdApp.Run "wdtest" てな感じで、開いてる Word の wdtest というマクロが Excel側から実行できます。
その他の回答 (1)
- GuruGuru22
- ベストアンサー率51% (177/346)
むしろ、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
お礼
ご回答ありがとうございます。 教えていただきましたマクロは、実行すると自動的にグラフウィザードの中にあるグラフをワードに貼りつけるまでしてしまうものなのですね。 ややこしい書き方をして申しわけありませんでしたが、グラフは「エクセルのオートシェイプで描いた」グラフなのです…。オートシェイプの円と線とテキストボックスを一部グループ化したものになります。 私の考えている手順というのは、 1. ワードの表に入力されている数値の一部をコピーして、既に作成してあるエクセルブックの所定のセルに貼りつけし、 2. (これはエクセルでの作業になります) コントロールツールボックスのコマンドボタンをクリックすると、1.で貼りつけられた数値を使って、元々オートシェイプで作成されたグラフエリアの上に、オートシェイプの矢印とテキストボックスを使って線と項目を描き (ここで手動でテキストボックスに修正を加える場合があります)、 3. もう一つのコントロールツールボックスのコマンドボタンをクリックすると、オートシェイプを含んだセル範囲をコピーして、ワード文書に、所定の位置と大きさで、コピーされたセル範囲を図として貼りつける。 というものです。グラフの手動での修正がなければワードから全部操作するのがいいのですが、使用する単位の変更などがあるので、こういった面倒な手順が必要になってしまいます…。 ですので、エクセルからワードのマクロを指定して実行させることができますでしょうか? もしできないのであれば、ワード文書に「貼りつけ」ボタンを作成して、ユーザーにそれをクリックしてもらうという方法しかありませんでしょうか? どうぞよろしくお願いいたします。
お礼
ご回答ありがとうございます。 試してみましたら、上手くいきました! またわからないことがあれば、よろしくお願いいたします。