こんにちは、
VBAのマクロプログラムは簡単に記述できて便利ですが、不便に感じるときもあります。自分で作ったものを自分で使うには良いのですが、他の人に使ってもらおうとすると、使える環境にしてもらうのが結構大変です。
これが、iLogicのルールだと、簡単です。外部ルールとして書かれたテキストファイルを渡して、それを実行してもらうだけですから。なので、VBAのマクロプログラムは、iLogicに移植してから渡すのも良いと思います。
マクロプログラムをiLogicに移植するのは意外と簡単です。
実際のマクロプログラムを例にして、手順を紹介します。
以下のコードは、「参照元が無くなってしまったスケッチを探して、スケッチ名を表示する」マクロプログラムです。
Sub get_unresolved_sketches()
Dim myBrokenSketches As New Collection
If ThisApplication.ActiveDocument.DocumentType = kPartDocumentObject Then
Dim myDoc As PartDocument
Set myDoc = ThisApplication.ActiveDocument
Dim mySketch As Sketch
Dim mySketchEntity As SketchEntity
For Each mySketch In myDoc.ComponentDefinition.Sketches
For Each mySketchEntity In mySketch.SketchEntities
If mySketchEntity.Reference = True And mySketchEntity.ReferencedEntity Is Nothing Then
myBrokenSketches.Add mySketch.Name
Exit For
End If
Next
Next
Else
MsgBox "no part document!", vbInformation, " without any warrenty! "
End If
If myBrokenSketches.Count > 0 Then
Dim myOutputString As String
myOutputString = "missing refs in following sketches :" & vbCr & vbCr
For i = 1 To myBrokenSketches.Count
myOutputString = myOutputString & myBrokenSketches.Item(i) & vbCr
Next i
MsgBox myOutputString, vbInformation, " without any warrenty! "
End If
End Sub
このコードの最初と最後の Sub と End Sub に囲まれた部分だけを、コピーして、iLogic のルールエディタに貼り付けます。
iLogicのルールとは、ちょっと雰囲気が違いますが、このコードをほとんどそのままルールとして使うことが出来ます。
幾つか修正が必要です。OKをクリックすると、エラーメッセージが表示されます。メッセージを閉じると、エラーの箇所が表示されます。
エラーを順に修正します。
ルールを実行すると、こんな画面になります。
動くのが確認できたら、これを外部ルールに保存して移植完了です。
実は、修正内容はVBAの構文を.NET VBの構文に修正するのと同じです。前にも説明したことがありますが、iLogicは、.NET VB のプログラムがそのまま走るのです。
どうぞお試しください。
-YO
コメント