読者です 読者をやめる 読者になる 読者になる

C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA

仕方なく、OOoBasicをやってみました3

CATIA_V5 OOoBasic

こちらの続きです。
仕方なく、OOoBasicをやってみました2 - C#ATIA

折角なので、CATIAでもやってみます。

元にするものは、こちらのスピードテストで使用したものです。
スピードテスト1 - C#ATIA

まず、元のソースコードを丸ごとOOoBasic側にコピペします。
VBAやVSの参照設定に該当するものが、良くわかりませんでした。
恐らく無いのではなかろうか? と思うのですがよくわかりません。
その為 "As" の以降の型の指定がエラーとなるので、全て置換機能で
「As 」 → 「'As 」
に置き換えコメント化させます。

続いて、アウトプロセスとなってしまう為、CATIA自身のオブジェクトを
取得しなければなりません。 さらに、OOoBasicのエディタから
マクロを起動する場合、"Sub Main" からしか起動出来なさそうなので
以下のコードを追加します。

'OOoBasic
Dim CATIA as Object

Sub Main
	set CATIA = CreateObject("CATIA.Application")'CATIAの取得
	CATMain'コピペしたCATMainの呼び出し
End Sub

ExcelVBAから起動する場合と同じです。

これでマクロを起動すると、エラー無く実行できました。 が、
元のVBAであれば最後にマクロの実行時間がダイアログに表示されますが、
OOoBasicの場合 "0秒" となってしまいます。
WinAPIを利用して時間を測定している事が原因だろうと思うのですが、
OOoBasicからWinAPIを利用する事が可能なものかどうか?は、
わかりませんでした。