<Sheet to Array> 「シート」を「配列」へ
「シート」を「配列」に入れるプロシージャです。
'*******
'* 「シート」を「配列」に入れるプロシージャ。20230707
'* SheetName:シート名前
'* myArray:出力される配列は、参照渡し。配列は、モジュールレベル変数としている。
'* RejectRw=1とすると頭の1行目を除いた表が、配列に入る。1行目の見出しが不要な場合に使用。
Sub sheet_to_array(ByVal SheetName As String, ByRef myArray As Variant, Optional RejectRw As Long = 0)
' 表を一気に変数にいれて処理
Dim Target As Range
Set Target = Worksheets(SheetName).UsedRange
With Target
If .Rows.Count > RejectRw And RejectRw > 0 Then
' 最初の行数(RejectRw)を除外する
Set Target = .Resize(.Rows.Count - RejectRw).Offset(RejectRw)
End If
End With
'Variant型の変数に値を一気に代入する
myArray = Target.Value
End Sub
「SheetName」のシートの使用しているすべてのセルを、配列にいれています。見出しなど、1行目が不要の場合は、「RejectRw=1」としてください。
使用例は、次です。
Dim arr() As Variant
' シートを配列に入れる、テストプロシージャ。
Private Sub test、シートを配列に入れる()
' (SheetName, ByRef arr, Optional RejectRw = 0)
Call sheet_to_array("TEST", arr)
End Sub
以下のような「TEST」シートで、これを実行すると、
「arr」の中は、以下の通りです。
「RejectRw=1」の使用例です。
Dim arr() As Variant
' シートを配列に入れる、テストプロシージャ、見出しを除く。
Private Sub test、シートを配列に入れる1()
' (SheetName, ByRef arr, Optional RejectRw = 0)
Call sheet_to_array("TEST", arr, 1)
End Sub
これを実行すると、「arr」の中は、以下の通りです。1行目の見出しを除いたデータが配列に入ります。
“<Sheet to Array> 「シート」を「配列」へ” に対して6件のコメントがあります。