プロパティ '<propertyname>' の 'Set' アクセサにアクセスできません。

更新 : 2007 年 11 月

ステートメントがプロパティの値を格納しようとしましたが、プロパティの Set プロシージャへのアクセス許可がありません。

Set ステートメント (Visual Basic)Property ステートメントよりも制限の高いアクセス レベルでマーク付けされている場合にプロパティ値の設定を試みると、次のケースでエラーになります。

  • Set ステートメントが Private (Visual Basic) でマーク付けされており、呼び出し元のコードがプロパティが定義されたクラスまたは構造体の外側にある場合。

  • Set ステートメントが Protected (Visual Basic) でマーク付けされており、呼び出し元のコードがプロパティが定義されたクラスまたは構造体の内部にも、派生クラスの内部にもない場合。

  • Set ステートメントが Friend (Visual Basic) でマーク付けされており、呼び出し元のコードがプロパティが定義されたのと同じアセンブリにない場合。

Error ID: BC31102

このエラーを解決するには

  • プロパティが定義されたソース コードを変更できる場合は、Set プロシージャをプロパティ自体と同じアクセス レベルで宣言できないか検討してください。

  • プロパティが定義されたソース コードを変更できない場合、または Set プロシージャをプロパティ自体よりも高いアクセス レベルで制限する必要がある場合は、プロパティ値を設定するステートメントをプロパティへのアクセスが可能なコード領域に移動することを検討します。

参照

処理手順

方法 : 複数のアクセス レベルを持つプロパティを宣言する

概念

Property プロシージャ