構造体の変数
更新 : 2007 年 11 月
構造体を作成したら、その型でプロシージャ レベルの変数およびモジュール レベルの変数を宣言できます。たとえば、コンピュータ システムに関する情報を記録する構造体を作成するとします。次にコード例を示します。
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public purchaseDate As Date
End Structure
これで、この型の変数を宣言できるようになります。次に例を示します。
Dim mySystem, yourSystem As systemInfo
メモ : |
---|
クラス内およびモジュール内では、Dim ステートメント (Visual Basic) を使用して宣言した構造体は既定でパブリック アクセスになります。構造体をプライベートにする場合は、Private (Visual Basic) キーワードを使用して宣言します。 |
構造体の値へのアクセス
構造体変数の要素で値を代入したり取得したりするには、オブジェクトのプロパティの設定や取得に使用する構文を指定します。メンバ アクセス演算子 (.) は、構造体変数名と要素名の間に配置します。systemInfo 型として既に宣言されている変数の要素にアクセスする例を次に示します。
mySystem.cPU = "486"
Dim tooOld As Boolean
If yourSystem.purchaseDate < #1/1/1992# Then tooOld = True
構造体変数の代入
両方の変数の構造体が同じ型の場合は、ある変数を別の変数に代入できます。これによって、一方の構造体のすべての要素が、もう一方の構造体の対応する要素にコピーされます。次に例を示します。
yourSystem = mySystem
構造体の要素が文字列型 (String) やオブジェクト型 (Object) などの参照型である場合は、データへのポインタがコピーされます。上の例で、systemInfo にオブジェクト変数が含まれていたとすると、mySystem から yourSystem にはポインタがコピーされることになります。そのため、一方の構造体をとおしてオブジェクトのデータに変更を加えると、もう一方の構造体をとおしてアクセスする内容にも変更が反映されます。