VBお役立ち集>ユーザー定義型だー

ユーザー定義型だー(確認VER VB5.0)



これは、本当に基本技なんですが、今更聞きにくいシリーズ(?)として紹介します。
なんだが難しそうな名前ですがいわゆるCでいうところの構造体です。って余計小難しそうな名前ですね。
もっと簡単にいうと、オブジェクトとプロパティの関係を自分で作れるのです(本当はクラスのことなんだけど、まあ似たようなもん)

例えば、VBでゲームを作るとして、キャラクターのプロフィールを変数で表したいとします。すると普通は以下のように記述しますよね?


Dim chara1Name As String 'キャラクター1の名前
Dim chara1Level As Long 'キャラクター1のレベル
Dim chara1Age As Long 'キャラクター1の年齢



しかし、このように一つ一つ要素を宣言していったらキリがありません。しかもキャラクターが増えた場合、配列にすればいいのですが、キャラクターごとのまとまった管理が難しいのではないでしょうか?そこでユーザー定義型の登場です。

次の表を見てください。



Public Type CharaData
Name As String 'キャラクターの名前
Level As Long 'キャラクターのレベル
Age As Long 'キャラクターの年齢
Item(100) As String 'アイテム
End Type
まずTypeステートメントで型(Type)を作ります。左の図のようにType〜End Typeの間にまとめたい要素を宣言していきます。Item(100)のように配列を用いることもできます。








Public Character As CharaData
次にさきほど定義した型を使って変数を宣言しましょう。これでOKです。Characterには定義した要素が含まれていますので、試しにChracterと打って「.」(ピリオド)を打ってください。どうです?まるでFormやCommandButtonのプロパティのように選択候補のウィンドウが出るでしょう?
選択候補


←こんなかんじに。






後は、普通の変数と同じように「Character.Age = 25」 という風に値を代入してやれば良いのです。

さらに応用としてWith〜End Withを使ってさらにコンパクトにもできます。



VBお役立ち集>ユーザー定義型だー