Excel VBAからWord文書を作成するための通常のアプローチ:
Set WD = CreateObject("Word.Document")
Excel 2011で実行すると、エラーが発生します。
VBAを使用してExcel2011でWord文書を作成する方法について何か考えはありますか?
(プログラムをPCでも実行できるようにしたいので、AppleScriptを使用したくありません。)
Excel VBAからWord文書を作成するための通常のアプローチ:
Set WD = CreateObject("Word.Document")
Excel 2011で実行すると、エラーが発生します。
VBAを使用してExcel2011でWord文書を作成する方法について何か考えはありますか?
(プログラムをPCでも実行できるようにしたいので、AppleScriptを使用したくありません。)
次のコードは、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
2 つの Set word ステートメントを入れ替えることができます。これは、PC で実行するとエラー コードの処理が不要になるため、望ましいと思われるかもしれませんが、何らかの理由で、Mac ではコードの実行が非常に遅くなります。
PC の場合、次のようにします。
Dim word As Object: Set word = CreateObject("word.application")
word.Visible = True
Dim doc As Object: Set doc = word.documents.Add