構造体の変数 (Visual Basic)

構造体を作成したら、プロシージャ レベルとモジュール レベルの変数をその型として宣言できます。 たとえば、コンピューター システムに関する情報を記録する構造体を作成できます。 次に例を示します。

Public Structure systemInfo
    Public cPU As String
    Public memory As Long
    Public purchaseDate As Date
End Structure

これで、その型の変数を宣言できるようになりました。 これを次の宣言に示します。

Dim mySystem, yourSystem As systemInfo

Note

クラスとモジュールで、Dim ステートメントを使用して宣言された構造体は、既定でパブリック アクセスになります。 構造体をプライベートにする場合は、Private キーワードを使用して宣言してください。

構造体の値へのアクセス

構造体変数の要素の値を代入したり取得したりするには、オブジェクトのプロパティの設定と取得に使用するのと同じ構文を使用します。 構造体変数名と要素名の間に、メンバー アクセス演算子 (.) を指定します。 次の例は、前に型 systemInfo として宣言された変数の要素にアクセスします。

mySystem.cPU = "486"
Dim tooOld As Boolean
If yourSystem.purchaseDate < #1/1/1992# Then tooOld = True

構造体の変数の代入

また、両方が同じ構造体型である場合は、1 つの変数を別の変数に代入することもできます。 これにより、1 つの構造体のすべての要素が、もう一方の対応する要素にコピーされます。 これを次の宣言に示します。

yourSystem = mySystem

構造体要素が StringObject、配列などの参照型である場合は、データへのポインターがコピーされます。 前の例で、systemInfo にオブジェクト変数が含まれているとすると、ポインターが mySystem から yourSystem にコピーされています。また、1 つの構造体を介してオブジェクトのデータを変更すると、他の構造体を使用してアクセスしたときに有効になります。

関連項目