方法: 構造体を宣言する (Visual Basic)How to: Declare a Structure (Visual Basic)

Structureステートメントを使用して構造体の宣言を開始し、End Structure ステートメントで終了します。You begin a structure declaration with the Structure Statement, and you end it with the End Structure statement. これら2つのステートメントの間には、少なくとも1つの要素を宣言する必要があります。Between these two statements you must declare at least one element. 要素は任意のデータ型にすることができますが、少なくとも1つは非共有変数または非共有のカスタムイベントのいずれかである必要があります。The elements can be of any data type, but at least one must be either a nonshared variable or a nonshared, noncustom event.

構造体の宣言で構造体の要素を初期化することはできません。You cannot initialize any of the structure elements in the structure declaration. 変数を構造体型として宣言する場合は、変数を使用して値にアクセスすることによって、要素に値を代入します。When you declare a variable to be of a structure type, you assign values to the elements by accessing them through the variable.

構造体とクラスの違いについては、「構造体とクラス」を参照してください。For a discussion of the differences between structures and classes, see Structures and Classes.

デモンストレーションを目的として、従業員の名前、電話の内線番号、給与を追跡する状況について考えてみましょう。For demonstration purposes, consider a situation where you want to keep track of an employee's name, telephone extension, and salary. 構造体を使用すると、1つの変数でこれを行うことができます。A structure allows you to do this in a single variable.

構造体を宣言するにはTo declare a structure

  1. 構造体の開始および終了ステートメントを作成します。Create the beginning and ending statements for the structure.

    PublicProtectedFriend、またはPrivateキーワードを使用して構造体のアクセスレベルを指定できます。また、既定の Publicに設定することもできます。You can specify the access level of a structure using the Public, Protected, Friend, or Private keyword, or you can let it default to Public.

    Private Structure employee  
    End Structure  
    
  2. 構造体の本体に要素を追加します。Add elements to the body of the structure.

    構造体には、少なくとも1つの要素が必要です。A structure must have at least one element. すべての要素を宣言し、そのアクセスレベルを指定する必要があります。You must declare every element and specify an access level for it. キーワードを指定せずにDim ステートメントを使用すると、ユーザー補助の既定値は Publicになります。If you use the Dim Statement without any keywords, the accessibility defaults to Public.

    Private Structure employee  
        Public givenName As String  
        Public familyName As String  
        Public phoneExtension As Long  
        Private salary As Decimal  
        Public Sub giveRaise(raise As Double)  
            salary *= raise  
        End Sub  
        Public Event salaryReviewTime()  
    End Structure  
    

    前の例の salary フィールドは Privateです。これは、コンテナークラスからであっても、構造体の外部ではアクセスできないことを意味します。The salary field in the preceding example is Private, which means it is inaccessible outside the structure, even from the containing class. ただし、giveRaise プロシージャは Publicため、構造の外部から呼び出すことができます。However, the giveRaise procedure is Public, so it can be called from outside the structure. 同様に、構造の外部から salaryReviewTime イベントを発生させることもできます。Similarly, you can raise the salaryReviewTime event from outside the structure.

    変数、Sub プロシージャ、およびイベントに加えて、構造体の定数、Function プロシージャ、およびプロパティを定義することもできます。In addition to variables, Sub procedures, and events, you can also define constants, Function procedures, and properties in a structure. 少なくとも1つの引数を指定する場合は、既定のプロパティとして最大で1つのプロパティを指定できます。You can designate at most one property as the default property, provided it takes at least one argument. 共有Sub プロシージャを使用して、イベントを処理できます。You can handle an event with a SharedSub procedure. 詳細については、「方法: Visual Basic で既定のプロパティを宣言して呼び出す」を参照してください。For more information, see How to: Declare and Call a Default Property in Visual Basic.

参照See also