特殊・他 ByValとByRefによる引数渡し-応用高等編

VB&VBA
FROG ふろっぐ
 
  • オプション

    本文印刷

    お気に入りに追加

  • 検索

    Googlewwwjp-ia
     

    Googlewwwjp-ia
     
  • 情報

  • 関連

[VB&VBA][特殊・他 ByValとByRefによる引数渡し-応用高等編]
Option Explicit


Sub ByRefstrFileName()
'**************************************************
'多次元変数のプロシージャ間の受け渡し(大量データ)
'**************************************************
'呼び出し側
'可変変数

Dim strFileName() As String
Dim i As Long

'変数の値を別のプロシージャでセットさせる
Call FileNameEnumeration(strFileName)

    '変数の最小値から最大値までを読む
    For i = LBound(strFileName) To UBound(strFileName)

        MsgBox strFileName(i)

    Next i

End Sub


Sub FileNameEnumeration(ByRef strFileName() As String)
'***********************************************
'指定フォルダ内のファイル名一覧を取得列挙する。
'***********************************************
'呼び出される側
'可変変数

Dim strPath As String
Dim buf As String, i As Long
Dim strExtension As String

strPath = ThisWorkbook.Path & "\www\BasicFile\take\" 'パス指定
strExtension = "txt" '指定拡張子
i = 0 'デフォルトでは0

    buf = Dir(strPath & "\*." & strExtension)
    Do While buf <> ""
    '変数値を増やす
    ReDim Preserve strFileName(i) As String
        strFileName(i) = buf
        i = i + 1
        buf = Dir()
    Loop

End Sub
Option Explicit


Private Sub TestDB(ByVal CharacterDB As Variant)
Dim i As Long
    For i = LBound(CharacterDB) To UBound(CharacterDB)
        Debug.Print CharacterDB(i)
    Next i
End Sub


Private Sub Test()
Dim CharacterDB() As String
Dim i As Long

    For i = 0 To 20
        ReDim Preserve CharacterDB(i)
        CharacterDB(i) = i * 10
    Next i

Call TestDB(CharacterDB())

End Sub






Production Japan Import Application. Since 1998