2011-11-15 10 views
2

からエクセルVBAからWord文書を作成するための通常のアプローチWordファイルを作成します。Excel 2011エクセル2011

でWord文書がいかに任意のアイデアを実行すると、エラーで

Set WD = CreateObject("Word.Document") 

結果をExcel 2011でVBAを使用して作成されましたか?

(私はプログラムもPC上で実行できるようにしたいとAppleScriptを使用する必要はありません。)私はこれを行うだろうPCの場合

+0

ようこそStackOverflow。 「エラーが発生する」または「例外が発生する」という単語を書くときにまず行うべきことは、「エラー」または**正確な**例外またはエラーメッセージの**正確な意味を投稿することですあなたが受け取りました。私たちはあなたの質問にあなたが提供する情報しか持っていないことを覚えておいてください - あなたのスクリーンやあなたのコードやエラーメッセージはここから見ることができません。あなたが私たちに働きかけるために提供する情報が多くなればなるほど、回答が得られるチャンスが増えます(さらに速くなります)。言い換えれば、私たちがあなたを助ける手助けをする必要があります。 :) –

+0

http://forum.soft32.com/mac/Error-ActiveX-create-object-OSX-ftopict83351.html –

+0

このアプローチは私には意味をなさないメモリ不足エラーを発生させます... MacでVBAを使用する –

答えて

0

Dim word As Object: Set word = CreateObject("word.application") 
word.Visible = True 
Dim doc As Object: Set doc = word.documents.Add 
+0

ありがとうございます、@brettville、あなたのコードはExcel2011で最初に実行されたので、ワードファイルを作成できるはずです。しかし、2回目またはWordが既に開いていると、Set word = CreateObject( "word.application")というエラーが429(オブジェクトはActiveXコンポーネントで作成できません)というエラーメッセージが表示されます。 )/ Rolf – rolf

+0

Hm、Excel VBAでMac用に、参照を追加する機能はありますか? – DontFretBrett

+0

どうすればわかりますか? Excel 2011 vbaは、使用可能な(検索可能な)ヘルプシステムなしで提供されます。問題へのアプローチは何を思いついていますか? – rolf

2

次のコード、 bretvilleの提案に基づいて、mac(Excel2011でテスト済み)とpc(Excel2007でテスト済み)の両方で動作するように見え、繰り返し実行することができ、複数のWordファイルを作成できます。 Excel2011(Mac)でコードが動作するために必要なものvbaは、Wordが既に実行中であるかどうかをテストする手段です。アプローチは、おそらく最もエレガントではありませんが、それは動作します。

Dim word As Object 
Dim doc As Object 
On Error Resume Next 
Set word = GetObject(, "word.application") 'gives error 429 if Word is not open 
If Err = 429 Then 
    Set word = CreateObject("word.application") 'creates a Word application 
    Err.Clear 
End If 
word.Visible = True 
Set doc = word.documents.Add 

あなたがPC上で実行するとエラー・コードの処理が必要になっていないとして好適見えるかもしれない2つの設定単語文を、交換することができるが、いくつかの理由のためのコードは、ひどくゆっくりとMac上で実行されます。