VBAとの互換性

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
やまちゃん

VBAとの互換性

#1 投稿記事 by やまちゃん »

はじめまして。
私は主にExcel VBAで開発を行なっているのですが、実行コード形式でアプリを
提供したり、グラフィックを利用したい場面が多く、困っておりました。
activebasic はこのような用途に最適と思ったのですが、言語仕様の一部に
若干の差があるようです。ざっとヘルプファイルに目を通した限りでは、下記に
気づきました。

(1)call 文がない
 VBAにも省略した書き方がありますが、呼び出しのフォーマットが異なります。

(2)変数は値渡しがデフォルト
 これはVBA側にByRef宣言があるので、VBA側で対応可能ですが。

上記以外に、何か大きな差異はありますでしょうか?
関連スレッドがありましたら、ご紹介頂けると助かります。

移植作業を本格的に始める前に、大雑把に手数を見積もっておきたいと考えて
おります。当分はVBAと並行利用となるため、できれば自作ライブラリを共用したい
という色気もあるのですが・・・
じみっちぃ

推測ですが…

#2 投稿記事 by じみっちぃ »

やまちゃんさんがどういったソースプログラムを書こうとしているかが
把握できていないので断言はできませんが


> 1)call 文がない
>  VBAにも省略した書き方がありますが、呼び出しのフォーマットが異なります。

おそらく、call文に関しては特に問題ないと思います。

VBでは、

Call hogehoge

Sub hogehoge()
処理A
処理B
処理C
End Sub

となりますが、ABでは

hogehoge()

Sub hogehoge()
処理A
処理B
処理C
End Sub

と書けば問題ないと思いますので。
Functionも同様ですよ。

それより、AB側からExcel等を制御するほうが若干面倒かもしれません。
過去にWScriptの正規表現を利用するサンプル等もあったと思いますので
もしかしたら、参考になるかも!



> (2)変数は値渡しがデフォルト
>  これはVBA側にByRef宣言があるので、VBA側で対応可能ですが。

たしか、VBとABでは ByRefとByValのデフォルトが逆だったと記憶しています。
ですが明示的に宣言してやれば、特に問題ないと思います。
要はデフォルトが逆だということを覚えておけば良いと思いますよ。

#みなさま、どこか間違ってましたら訂正してやってください。

ではでは。
やまちゃん

Re:推測ですが…

#3 投稿記事 by やまちゃん »

レスありがとうございます。

ABの仕様はVBAと共通部分が多いので、余り大変な作業にはならなさそう
ですね。共通部と非共通部とを切り分けるようなプログラムスタイルに変えて
いくつもりです。

将来的には、何か簡単なトランスレータでも作ろうかと思っています。今後とも
よろしくお願い致します。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#4 投稿記事 by イグトランス »

VB(A)からABへ移る際の最大の問題となりそうなことは,ABに参照設定が無いことです。
そのためじみっちぃさんが仰っているとおりExcelなど外部のActiveXコンポーネントの利用が今のところ大変面倒くさいです。
利用している際にはその点に留意してください。
やまちゃん

#5 投稿記事 by やまちゃん »

レスありがとうございます。

私のプログラムは数値計算が主体ですので、当分ActiveXのお世話になる
ことはなさそうです。ただ、将来的には使用の可能性もありますので、その他の
仕様差も含め、十分注意しながら移植作業を進めたいと思います。
返信する