VBAでオブジェクト指向プログラミング
2018/06/29
JavaやC#ほど使い勝手がいいわけではありませんが、VBAもオブジェクト指向プログラミングが可能です。
通常、ExcelマクロはVisual Basic Editorの「標準モジュール」というところに記述しますが、今回は「クラスモジュール」というところに書きます。
[ad#top-1]
まずは、VBAエディタで[挿入]-[クラスモジュール]を選択すると、クラスエディタが現れます。ここでクラス名を変え方が良いでしょう。デフォルトは「Class1」という名前になっていますが、機能がわかるように命名してください。今回は「TestClass」という名前に変えました。
わかりやすくシンプルなコードを紹介。JavaかC#を触ったことがあればだいたいわかるかと思います。これでジェネリックコレクションが使えれば最高なんですが・・・。
【クラス側のコード】
Private 名前 As String Private 年齢 As Integer Public Function setting(name, age) 名前 = name 年齢 = age End Function Public Function getName() getName = 名前 End Function Public Function getAge() getAge = 年齢 End Function
次にクラスを使う側のソースコードです。こちらは標準モジュールに書きます。
Sub テスト() Dim 太郎 As TestClass Set 太郎 = New TestClass 太郎.setting "山田太郎", 22 '引数はカッコで括らない。 MsgBox (太郎.getName) MsgBox (太郎.getAge) End Sub
■関連記事■
標準モジュールでもクラスっぽいことができます。
[ad#ad-1]
スポンサーリンク