Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2013)
エラーを回避したいのですが
投稿日時: 20/06/16 06:27:00
投稿者: さむさむ

いつもご教示ありがとうございます。
https://www.moug.net/faq/viewtopic.php?t=79512
で解決済みにしたところですが、WordOpを2回目にに続けて実行する462が発生します
Sub WordOp(Fl, At, nob, YMD, ad, Jiyu)  FLは使わない
    Dim wdApp As Word.Application
    Set wdApp = CreateObject("word.application")
 


         For K = 1 To 2
             .Sentences(K).FitTextWidth = MillimetersToPoints(42.3) ’←エラー箇所 エラー462
         Next

 End Sub
1  https://support.microsoft.com/ja-jp/help/178510/excel-automation-fails-second-time-code-runs
 MSヘルプでは「オートメーション コードを複数回実行しようとすると、この参照が原因で問題が発生することがあります。」
2  https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1341998113?__ysp=LkZpdFRleHRXaWR0aCAg44Ko44Op44O877yU77yW77yS
では、コードを実行したのちエクセルを閉じる
などあります。
 WordOpをLoopで動かしたいときがあります。このエラーを回避したいのですが、これ以上わからずです。
ご教示をお願いします。

回答
投稿日時: 20/06/16 09:09:07
投稿者: WinArrow
投稿者のウェブサイトに移動

よくわかりませんが、
 
前スレのコードを見ると、
wdDoc
を閉じていませんよね?
 
関係ないかもしれませんが、
wdApp.Quit
したほうがよいのでは?

回答
投稿日時: 20/06/16 09:13:16
投稿者: sk

引用:
Dim wdApp As Word.Application
Set wdApp = CreateObject("word.application")

引用:
.Sentences(K).FitTextWidth = MillimetersToPoints(42.3)

.Sentences(K).FitTextWidth = wdApp.MillimetersToPoints(42.3)
 
-----------------------------------------------------------
 
MillimetersToPoints メソッドは Word.Application オブジェクトのメンバーですので、
Word 以外の環境で実行する場合はオブジェクトを明示的に指定する必要があります。

投稿日時: 20/06/16 14:25:07
投稿者: さむさむ

皆さん ありがとうございました。
skさん解決しました。
ワードのリモートサーバを起てなさいという意味はMillimetersToPoints(42.3)を提供するサーバーということだったのですね。目から鱗です。
ありがとうございました。