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お役立ち集
>ユーザー定義型だー