ページの作成:「== 概要 == <br><br> == 基本構文 == <syntaxhighlight lang="vb"> ' 関数 [Private|Public] Function <関数名>([<引数> As <型>, ...]) [As <戻り値の型>] ' 処理 関数名 = 戻り値 '戻り値の設定 End Function ' サブルーチン [Private|Public] Sub <サブルーチン名>([<引数> As <型>, ...]) ' 処理 ' ...略 End Sub </syntaxhighlight> <br><br> == プロパティ== <syntaxhighlight lang="vb"> Property Get <…」 |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Visual Basic 6の関数は、特定の処理を行い値を返すプログラムの一部として機能する。<br> | |||
<br> | |||
アクセス修飾子として、<code>Private</code>や<code>Public</code>を指定して、関数名の後に引数を定義する。<br> | |||
戻り値の型は、<code>As</code>キーワードで指定する。<br> | |||
<br> | |||
関数内では値を計算や処理を行い、最終的に関数名に値を代入することで戻り値を設定する。<br> | |||
データ型には数値型、文字列型、オブジェクト型等があり、目的に応じて適切な型を選択できる。<br> | |||
<br> | |||
引数の受け渡し方法には値渡し (ByVal) と 参照渡し (ByRef) があり、デフォルトは参照渡しである。<br> | |||
必要に応じて、省略可能な引数や可変長引数も使用できる。<br> | |||
<br> | |||
関数は他の関数やサブルーチンから呼び出すことができ、モジュール化されたコードの定義に役立つ。<br> | |||
また、エラーハンドリングのためにOn Errorステートメントを使用することもできる。<br> | |||
<br><br> | <br><br> | ||
| 16行目: | 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> | ||
| 102行目: | 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 | ||
| 118行目: | 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> | ||