テンプレート ドキュメントで検索/置換メソッドを使用して、COM (コンポーネント オブジェクト モデル) で MS Word .docx ファイルを生成しています。
問題: 私の PC では正常に動作しますが、実稼働 PC では動作しません!! 両方のコンピューターで同じ構成を使用しています。
まず、$word = new COM('word.application');
echo "Loaded Word, version {$word->Version}\n";
12.0 という COM オブジェクトをインスタンス化します。だから私はこれまでのところすべてが大丈夫だと推測します。$word->Documents->Open("c:\\test.docx");
コマンドで何かがうまくいかない。括弧の間に入れたものはすべて通過しないようです。私が入れたのと同じ$word->Documents->Open(" ");
次の行: $word->Selection->Find->ClearFormatting();
「オブジェクト以外のプロパティを取得しようとしています」というエラー メッセージが表示され、その後致命的なエラーが発生します。空の文字列が渡されDocuments->Open()
、COM オブジェクトが破棄されているようです。
相対パス、絶対パス、バックスラッシュ、ダブルスラッシュを試してみましたが、それとは何の関係もないようです。同様に、コマンド$word->visible = 1;
は言葉を持ち出しません。
両方の PC でほぼ同じ構成があります。 1 台目の PC: - win7 Ultimate、32 ビット、ms Word 7、同じ WAMP バージョン 2 台目の PC: - win7 Professional、32 ビット、ms Word 7、同じ WAMP バージョン
Documents.Open FileName:="test.docx" などのように、2 台目の PC でマクロを試しましたが、正常に動作しました。2台目のPCで何が違うのか、何が原因なのかわかりません。