VBA と Java のオブジェクト指向プログラミング

Top > JavaのプログラムをVBAのプログラムに移植する方法

Java のプログラムを VBA のプログラムに移植する方法

コンストラクタ

VBAのクラスはコンストラクタを定義できません。
クラスモジュールにコンストラクタの処理を定義しておいて、クラスモジュール
とペアになる標準モジュールを作って標準モジュールのプロシージャからその
処理を呼び出すようにします。

クラスメソッド

VBAのクラスはクラスメソッドを定義できません。
クラスモジュールとペアになる標準モジュールを作って標準モジュールに定義
します。

クラスフィールド

VBAのクラスはクラスフィールドを定義できません。
クラスフィールドは別クラスに定義して別クラスのインスタンスを参照する形
にします。

フィールドの宣言と初期値の代入を同時に行っている処理

VBAではプロパティの宣言と初期値の代入を同時に行うことができません。
コンストラクタの中で初期値を設定することで、インスタンスの生成時に
初期値を代入します。

インスタンスメソッド

戻り値がvoid以外のメソッドは、Fucitonプロシージャに置き換えます。
戻り値がvoidのメソッドは、Subプロシージャに置き換えます。
値を設定する setXXX メソッドは、Property Let または、Property Set
プロシージャに置き換えます。
値を取得する getXXX メソッドは、Property Get プロシージャに置き換えます。

実装の継承

VBAのクラスは実装の継承をサポートしていません。
インターフェイスの継承と委譲を使うことによって、実装の継承をしているよう
に見せかけます。

抽象メソッド

VBAのクラスは実装の継承をサポートしていません。
スーパークラスに抽象メソッドの実際の処理が記述されているインスタンスの
情報を保持するプロパティを定義して、抽象メソッドを呼び出すメソッドでは、
そのプロパティを参照して抽象メソッドの実際の処理が記述されているメソッド
を呼び出すようにします。

例外処理

Javaの例外処理はVBAのエラー処理に置き換えます。
VBAのエラー処理では、番号、メッセージ、などを指定して間接的にエラー
オブジェクトを作成します。

インターフェイス

VBA の IDE は実体のないプロシージャを自動的に削除してしまいます。
それを防ぐために、インターフェイスとして参照される側のクラスに定義する
メソッドに実行する処理を記述する必要がない場合でもコメント行を書くよう
にします。

cloneメソッド

VBA のクラスには Java の clone メソッドに相当するインスタンスのコピー
機能がありません。
メンバー情報をユーザー定義型として定義して、メンバー情報をコピーする
メソッドを自作します。

toStringメソッド

VBA のクラスはインスタンスの内容を文字列に変換する toString メソッドを
サポートしていません。
必要であれば toString メソッドを自作します。インスタンスを文字列に変換
する必要がある場合には明示的に toString メソッドを呼び出す必要があります。

インスタンスの比較

Java では、==、equals メソッドなどでインスタンスの比較を行いますが、
VBAでは Is 演算子を使ってインスタンスの比較をおこないます。
Java では instanceOf であるインスタンスが特定のクラスのインスタンスか
どうかを判断できますが、VBA には instanceOf に相当する機能がありません。
必要であれば自作します。

null

Javaではインスタンスが設定されていない状態は == null で判断しますが、
VBA ではインスタンスが設定されていない状態は Is Nothing で判断します。

String

Java では String は参照型ですが、VBA では String は参照型でない
プリミティブ(基本的)なデータ型の1つです。
したがって、String に Nothig を代入して特別な状態を設定することはでき
ません。

整数

Java では整数のデータを扱うときに int を使うことが多いですが、VBA では
Long を使うことが多いです。Java では int が32ビットの整数ですが、
VBA では Long が32ビットの整数になっています。

クラスライブラリ

ArrayList、HashMap、Properties、などの Java のクラスライブラリで定義
されているクラスについては、Collection、Dictionary などの VBA のクラス
で代用できることがあります。代用できない場合は Java のクラスライブラリ
で定義されているクラスと同じ機能を持つクラスを自作します。
Java では、AWT/Swing を使って GUI を構築しますが、VBA ではユーザー
フォームを使って GUI を構築します。
VBA のユーザーフォームは用途がダイアログに限定されており、イベントの
考え方も AWT/Swing とは異なるので、作り直しになります。

メソッドやプロパティの名前

コレクション関係のメソッド名などは VBA の Collection や Dictionary で
使われているメソッド名に合わせておくと、メソッド名から何をするメソッド
かがすぐにわかります。
コレクションの値を取得するメソッドは「Item」
コレクションに値を追加するメソッドは「Add」
コレクションの値を削除するメソッドは「Remove」
コレクションの要素数を取得するメソッドは「Count」


Top > Java のプログラムを VBA のプログラムに移植する方法

このページへのコメント

3oPmsh Thank you ever so for you blog.Really looking forward to read more. Fantastic.

0
Posted by awesome things! 2014年01月22日(水) 01:35:33 返信

<a href="http://pradabag.promo-amdindonesia.com/">プラダ トート</a> 正規品販売認定店!http://pradabag.promo-amdindonesia.com/

0
Posted by バレンシアガ バッグ メンズ 2013年10月17日(木) 16:11:24 返信

篁ャ鐔鐚常湿障域障蕁障 若 http://www.fetang.com/

0
Posted by 若 2013年07月31日(水) 10:32:24 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

×

この広告は60日間更新がないwikiに表示されております。

編集にはIDが必要です