「Visual Basic 6の基礎 - 関数」の版間の差分
		
		
		
		
		
		ナビゲーションに移動
		検索に移動
		
				
		
		
	
|  (→概要) |  (→基本構文) | ||
| 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> | ||
2025年1月23日 (木) 15:35時点における版
概要
Visual Basic 6の関数は、特定の処理を行い値を返すプログラムの一部として機能する。
アクセス修飾子として、PrivateやPublicを指定して、関数名の後に引数を定義する。
戻り値の型は、Asキーワードで指定する。
関数内では値を計算や処理を行い、最終的に関数名に値を代入することで戻り値を設定する。
データ型には数値型、文字列型、オブジェクト型等があり、目的に応じて適切な型を選択できる。
引数の受け渡し方法には値渡し (ByVal) と 参照渡し (ByRef) があり、デフォルトは参照渡しである。
必要に応じて、省略可能な引数や可変長引数も使用できる。
関数は他の関数やサブルーチンから呼び出すことができ、モジュール化されたコードの定義に役立つ。
また、エラーハンドリングのためにOn Errorステートメントを使用することもできる。
基本構文
 ' 関数
 [Private|Public] Function <関数名>([<引数> As <型>, ...]) [As <戻り値の型>]
    ' 処理
    関数名 = 戻り値  '戻り値の設定
 End Function
 
 ' サブルーチン
 [Private|Public] Sub <サブルーチン名>([<引数> As <型>, ...])
    ' 処理
    ' ...略
 End Sub
Private / Public
Private
- そのモジュール内でのみアクセス可能
- 他のモジュールからは参照不可
- コードの安全性とカプセル化を高める。
 ' このモジュール内でのみ使用可
 Private Sub InternalProcess()
    '処理
 End Sub
Public
- どのモジュールからもアクセス可能
- プロジェクト内のどこからでも参照可能
- モジュール間で共有する必要がある変数やメソッドに使用する。
 ' 他モジュールから呼び出し可
 Public Function Calculate() As Integer
    '処理
 End Function
プロパティ
 Property Get <プロパティ名>() As <型>
    ' 取得処理
    ' ...略
 End Property
 Property Let <プロパティ名>(<値> As <型>)
    ' 設定処理
 End Property
引数の修飾子
- ByVal
- 値渡し
 
- ByRef
- 参照渡し (デフォルト)
 
- Optional
- 省略可能な引数
 
- ParamArray
- 可変長引数
 
関数の定義例
基本的な関数
 Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
    Add = x + y
 End Function
 
 ' 使用例
 Dim result As Integer
 result = Add(5, 3)  ' result = 8
参照渡しのサブルーチン
 Private Sub Swap(ByRef a As Integer, ByRef b As Integer)
    Dim temp As Integer
    temp = a
    a = b
    b = temp
 End Sub
 
 ' 使用例
 Dim x As Integer, y As Integer
 x = 1
 y = 2
 Swap x, y  ' x = 2, y = 1
オプション引数
 Private Function Multiply(ByVal x As Integer, Optional ByVal y As Integer = 1) As Integer
    Multiply = x * y
 End Function
 
 ' 使用例
 Dim result As Integer
 result = Multiply(5)     ' result = 5
 result = Multiply(5, 2)  ' result = 10
可変長引数
 Private Function Sum(ParamArray numbers() As Variant) As Long
    Dim total As Long
    Dim i As Integer
 
    For i = 0 To UBound(numbers)
       total = total + numbers(i)
    Next
 
    Sum = total
 End Function
 
 ' 使用例
 Dim result As Long
 result = Sum(1, 2, 3, 4, 5)  ' result = 15
プロパティ
 Private m_Name As String
 
 Property Get Name() As String
    Name = m_Name
 End Property
 
 Property Let Name(ByVal value As String)
    m_Name = value
 End Property
 
 ' 使用例
 Me.Name = "Test"     ' 設定
 Debug.Print Me.Name  ' 取得