SolidWorksも35分で強制保存終了

SolidWorksだけでsettimer(WindowsAPIの関数)のようにある時間後に関数を呼び出すような方法がわからない。だから、ExcelのApplication.OnTimeを使う。そのため、SolidWor … “SolidWorksも35分で強制保存終了” の続きを読む

SolidWorksだけでsettimer(WindowsAPIの関数)のように
ある時間後に関数を呼び出すような方法がわからない。
だから、
ExcelのApplication.OnTimeを使う。
そのため、
SolidWorksの起動は、Excelファイルから起動する。
(SolidWorks側でExcelのライブラリを参照しても
Application.OnTimeで指定したプロシージャを呼び出せない。
“savequit”を呼び出せないだけでExcelとなる)
2017-07-31_13h52_59
ExcelからSolidWorksを起動するためには、
SolidWorksのライブラリを参照するのがスマート。
SolidWorks関係を追加する。
2017-07-31_13h41_44

以下はModule1のコード
Option Explicit
‘Drawが呼び込まれている場合は元のPartも表示する
Dim swApp As SldWorks.SldWorks
Dim model As SldWorks.ModelDoc2

Sub ボタン1_Click()
    Set swApp = GetObject(“”, “SldWorks.Application”)
    swApp.Visible = True
    Application.OnTime Now() + TimeValue(“0:0:25”), “savequit” ’ここでは25秒にしている
End Sub

Sub savequit()
    Set model = swApp.GetFirstDocument
    Do While Not model Is Nothing
        Debug.Print model.GetTitle
        model.Save
        Set model = model.GetNext
    Loop
    swApp.CloseAllDocuments True ‘Trueで強制終了
    swApp.ExitApp
End Sub

2017-07-31_13h55_03
以上で
ExcelWord、SolidWorksの一定時間後に自動保存強制終了。