よくあるご質問
COM I/FでAsprovaのメッセージを取得することができますか?
COM I/Fでメッセージを取得する場合、ASOMessageインターフェイスを利用します。
メッセージはプロジェクトの子オブジェクトとなり、以下のようにして取得することができます。
Dim pRootMsg As ASOMessage
Set pRootMsg = pProj.RootMessage
(pProjはASBProjectインターフェイスです。事前に取得しておく必要があります。)
実際のメッセージはRootMessageの子オブジェクトとなりますので、以下のように、ChildAsMessageメソッドを利用して、参照します。
If Not pRootMsg Is Nothing Then
Dim strMsg As String
Dim i As Long
Dim msgCount As Long
msgCount = pRootMsg.ChildCount
Dim pMsg As ASOMessage
For i = 1 To msgCount
Set pMsg = pRootMsg.ChildAsMessage(i)
( ここでメッセージの情報を取得します )
Next i
End If
ASOMessageインターフェイスの主なプロパティは以下のとおりです。
MsgSeverity : メッセージのレベル(情報/警告/エラー)
MsgString : メッセージの内容
MsgRelatedObject : 関連しているオブジェクト
資源評価など、メッセージによって、下の階層に詳細メッセージを保持することもあります。この場合は以下のプロパティを参照して、取得することができます。
ChildAsMessage : 下の階層のオブジェクト
上記のインターフェイスを介して、メッセージ内容を取得し、ファイルに出力するコードを記述していただきますと、たとえば、テキストファイルなどにメッセージ内容を出力することができます。