• 締切済み

オートメーションエラー(2147418105)

現在、ACTIVE REPORTSを使用して帳票の印刷を行っているのですが、 下記のような関数がありまして、複数回同時にこの関数をCallすると 1回目はうまく印刷するのですが、2回目以降はUnload Objが影響してエラーとなります。 そもそも同時実行する必要がないので、修正することは容易なのですが、 Unloadは他のスレッドに影響を及ぼすものなのでしょうか? また、OSによって異なったりするものでしょうか? 何か情報をお持ちの方がいらっしゃいましたら、アドバイスをお願いします。 [OSのVER]:Windows2000 [VBのVER]:VB6 Private Sub cmd_Click() Dim Obj As Object Obj = aaaOut CALL Obj.Printer.PrintDialog (省略してますがここで印刷を行ってます) DoEvents ← この関数を複数回呼ぶことが可能になってます If Not ObjArvRpt Is Nothing Then Unload Obj Set Obj = Nothing End If End Sub

みんなの回答

  • n-before
  • ベストアンサー率50% (3/6)
回答No.1

問題は2つあります。 まず数値ですけど-が抜けてますね。これを16進数にすると0x80010007となり、 「警告」「RPC機能」「既にそのブロックは破壊されています。」になります。 要するに使用できたメモリ領域が何らかの理由で破壊されていて使用できない状態になっているのでしょう。 メモリ領域を破壊する個所は、一番最後の Set Obj = Nothing でしょうね。 次にDoEventsの使い方が間違ってます。 DoEventsは、他の処理へ制御をまわすためのものであり、 関数を複数回呼び出すことを可能にするものではありません。 DoEventsを使用して同じ関数を複数回呼び出しを可能にしていることが問題です。

すると、全ての回答が全文表示されます。

関連するQ&A