銀河鉄道

【VBA】シートにあるデータを配列に格納する(空白含まない)|CurrentRegion

サムネイル
CurrentRegionのデータを配列で取得

空白行・空白列で囲まれた内側の範囲を取得する

空白を含まないデータになる

Public Function GetSheetDataCurrent( _
                                            ByVal ws As Worksheet, _
                                            ByVal row As Long, _
                                            ByVal col As Long) As Variant
    GetSheetDataCurrent = ws.Cells(row, col).CurrentRegion.value
End Function

堅牢な作りにする場合

' Get values of the CurrentRegion for a given cell
' 指定セルを基点としたCurrentRegionの値を取得する
Public Function GetCurrentRegionValues( _
	ByVal ws As Worksheet, _
	ByVal row As Long, _
	ByVal col As Long) As Variant

	Dim targetCell As Range
	Dim result As Variant
	
	' Validate input arguments / 入力検証
	If row < 1 Or col < 1 Then
		Exit Function
	End If
	
	' Assign target cell safely / 対象セルの安全な参照
	Set targetCell = ws.Cells(row, col)
	
	' If targetCell is empty, exit / 空セルなら終了
	If IsEmpty(targetCell.Value) Then
		Exit Function
	End If
	
	' Get CurrentRegion values / CurrentRegionを配列で取得
	On Error GoTo ErrHandler
	result = targetCell.CurrentRegion.Value
	GetCurrentRegionValues = result
	On Error GoTo 0
	Exit Function
	
ErrHandler:
	' Optional: return Empty or raise error
	GetCurrentRegionValues = Empty
	On Error GoTo 0
End Function

途中に空白が含まれている場合は、UsedRange

テーブルの場合

同じ処理をPythonでも書いてみよう

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧