SolidWorksだけでsettimer(WindowsAPIの関数)のように
ある時間後に関数を呼び出すような方法がわからない。
だから、
ExcelのApplication.OnTimeを使う。
そのため、
SolidWorksの起動は、Excelファイルから起動する。
(SolidWorks側でExcelのライブラリを参照しても
Application.OnTimeで指定したプロシージャを呼び出せない。
“savequit”を呼び出せないだけでExcelとなる)
ExcelからSolidWorksを起動するためには、
SolidWorksのライブラリを参照するのがスマート。
SolidWorks関係を追加する。
以下はModule1のコード
Option Explicit
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
(Visited 137 times, 1 visits today)