前回のオープンオフィスの開放のコード、Sub DisconnectOpenOffice()ではProcessが残ってしまうことを発見した。
次の方法ではProcessが残らないようだ。
Public Sub DisconnectOSM(Optional ByVal closeOpenOffice As Boolean = False)
oDispHelper = Nothing
oDesktop = Nothing
oSM = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
If closeOpenOffice Then
'オープンオフィスを再起動して、確実に閉じる
Dim ooo As Object, dtp As Object
ooo = CreateObject("com.sun.star.ServiceManager")
dtp = ooo.createInstance("com.sun.star.frame.Desktop")
dtp.terminate()
dtp = Nothing
ooo = Nothing
End If
End Sub
使い方:
Call DisconnectOSM(True)