現在、VBAのプログラム(ものすごく長いもの)があります。
共通の処理があるのにも関わらず場合分けをして全てコーディングしてある状況です。
最終目標:処理のブロックにわけてプログラムの行数を削減、
必要な処理のチェックボックスを作成して選択、
チェックされた処理のみを適宜処理(もちろんエラー対応有り)
このようなプログラムに修正しようと思っております。
1.Public Sub …A… End Sub
Public Sub …B… End Sub
Public Sub …C… End Sub
という上記A、B、Cをまとめて呼び出す場合、
Public Sub “任意の文字列”
Call A
Call B
Call C
End Subだけ(A、B、Cは処理の記載があるとします。)で動作するのでしょうか?
まだまだVBAを勉強中なのでわからないことばかりです。
ご教示よろしくお願いいたします。
Public Sub A() 処理A End Sub Public Sub B() 処理B End Sub
と名前をつければ、
Public Sub なにがし() CALL A CALL B End Sub
Public Sub なにがし2() A B End Sub
VBAはクラスモジュールを使って「プロパティとメソッドを名前空間で分離できる」ので、広い意味でのオブジェクト指向言語と言えます。言えますが。。。
ただ、smalltalkに始まる、クラスの継承・オーバーロードなどを用いた概念はありません。JAVAなんかと似たコーティングは大変です。同じやり方をしようとするとソースコードが見にくくなったり、クラスモジュールが乱立した入りで、わややになります。
VBAでオブジェクト指向の基礎を学ぶなら、まずは、
を心がけてみてはいかがでしょうか。
2014/05/13 22:40:51VBの初期段階ではオブジェクト指向ではなかったことは知っています。
2014/05/18 11:23:30ただ.netになってから少しずつ変化してきていると思っています。
JAVAやC++とどの程度格差がなくなってきたのかと思って質問させていただきました。
プログラム自体は分割できて問題なく動いているのでこれで質問を閉めたいと思います。
ありがとうございました。