📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の1版が非表示)
28行目: 28行目:
     ' ...略
     ' ...略
  End Sub
  End Sub
</syntaxhighlight>
<br><br>
== Private / Public ==
==== Private ====
* そのモジュール内でのみアクセス可能
* 他のモジュールからは参照不可
* コードの安全性とカプセル化を高める。
<br>
<syntaxhighlight lang="vb">
' このモジュール内でのみ使用可
Private Sub InternalProcess()
    '処理
End Sub
</syntaxhighlight>
<br>
==== Public ====
* どのモジュールからもアクセス可能
* プロジェクト内のどこからでも参照可能
* モジュール間で共有する必要がある変数やメソッドに使用する。
<br>
<syntaxhighlight lang="vb">
' 他モジュールから呼び出し可
Public Function Calculate() As Integer
    '処理
End Function
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>
114行目: 140行目:
  result = Sum(1, 2, 3, 4, 5)  ' result = 15
  result = Sum(1, 2, 3, 4, 5)  ' result = 15
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
== プロパティ ==
==== プロパティとは ====
プロパティは内部データへのアクセスを制御して、値の検証やその他のロジックを追加することができる。<br>
<br>
プロパティには、以下に示す3つの主要なアクセサがある。<br>
* Get
*: 値の読み取り
* Let
*: 値の設定 (通常の値型)
* Set
*: オブジェクトの設定
<br>
<br>
==== プロパティ ====
  <syntaxhighlight lang="vb">
  <syntaxhighlight lang="vb">
  Private m_Name As String
  Private m_Name As String
130行目: 168行目:
  Me.Name = "Test"    ' 設定
  Me.Name = "Test"    ' 設定
  Debug.Print Me.Name  ' 取得
  Debug.Print Me.Name  ' 取得
</syntaxhighlight>
<br>
==== データの検証 ====
<syntaxhighlight lang="vb">
Property Let Age(value As Integer)
    If value >= 0 And value <= 150 Then
      mAge = value
    Else
      Err.Raise 1000, "Invalid age value"
    End If
End Property
</syntaxhighlight>
<br>
==== 計算値の提供 ====
<syntaxhighlight lang="vb">
Property Get TotalPrice() As Currency
    TotalPrice = mBasePrice * (1 + mTaxRate)
End Property
</syntaxhighlight>
<br>
==== カプセル化による安全性確保 ====
<syntaxhighlight lang="vb">
Private mPassword As String
Property Let Password(value As String)
    mPassword = Encrypt(value)
End Property
</syntaxhighlight>
<br>
==== 参照整合性の管理 ====
<syntaxhighlight lang="vb">
Private mParent As Form
Property Set Parent(obj As Form)
    If Not obj Is Nothing Then
      Set mParent = obj
      ' その他の初期化処理
      ' ...略
    End If
End Property
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>