方法 : 構造体を宣言する
更新 : 2007 年 11 月
構造体宣言は、Structure ステートメント で開始し、EndStructure ステートメントで終了します。この 2 つのステートメントの間に、少なくとも 1 つの要素を宣言する必要があります。要素にはすべてのデータ型を使用できますが、少なくとも 1 つは、非共有変数または非共有で非カスタムのイベントのいずれかである必要があります。
構造体の宣言で構造体の要素を初期化することはできません。構造体型の変数を宣言するときは、変数をとおして要素にアクセスすることにより、要素に値を代入します。
構造体とクラスとの違いに関する詳細については、「構造体とクラス」を参照してください。
デモの目的で、従業員の名前、内線番号、および給与を追跡する状況を考えてみます。構造体により、単一の変数でこれを行うことができます。
構造体を宣言するには
構造体の開始ステートメントと終了ステートメントを作成します。
Public (Visual Basic) キーワード、Protected (Visual Basic) キーワード、Friend (Visual Basic) キーワード、または Private (Visual Basic) キーワードを使用して、構造体のアクセス レベルを指定できます。または既定の Public に設定できます。
Private Structure employee End Structure
構造体の本体に要素を追加します。
構造体は、少なくとも 1 つの要素を持つ必要があります。すべての要素を宣言し、それぞれのアクセス レベルを指定する必要があります。キーワードを指定せずに Dim ステートメント (Visual Basic) を使用する場合、アクセシビリティは既定で 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 です。つまり、含まれているクラスからでも、構造体の外部ではアクセスできません。ただし、giveRaise プロシージャは Public であるため、構造体以外から呼び出すことができます。同様に、構造体以外から salaryReviewTime イベントを発生させることができます。
変数、Sub プロシージャ、およびイベントに加え、定数、Function プロシージャ、およびプロパティも構造体で定義できます。既定のプロパティとしてプロパティを 1 つ指定できます。ただし、少なくとも 1 つの引数を指定する必要があります。イベントは Shared (Visual Basic)Sub プロシージャを使用して処理できます。詳細については、「方法 : 既定のプロパティを宣言する/呼び出す (Visual Basic)」を参照してください。