***************************************************************
配列の基底を調整する
【引数】DataAry :データ配列
Base_Row :1次元の配列のBase
Base_Col :2次元の配列のBase
***************************************************************
Public Function fArray_BaseN(DataAry As Variant, Base_Row As Long, Optional Base_Col As Long = -1) As Variant
Dim RetAry As Variant
Dim Row_L As Long
Dim Row_U As Long
Dim Col_L As Long
Dim Col_U As Long
Call fArray_Lbound_Ubound(DataAry, Row_L, Row_U, Col_L, Col_U)
Dim CntDim As Long
CntDim = fArray_DimCount(DataAry)
Select Case CntDim
Case 1
ReDim RetAry(Base_Row To Base_Row + Row_U - Row_L)
Dim i As Long
For i = Row_L To Row_U
RetAry(Base_Row + i - Row_L) = DataAry(i)
Next
Case 2
Dim BaseCol As Long
BaseCol = Base_Row
If -1 <> Base_Col Then
BaseCol = Base_Col
End If
ReDim RetAry(Base_Row To Base_Row + Row_U - Row_L, BaseCol To BaseCol + Col_U - Col_L)
Dim j As Long
For j = Col_L To Col_U
For i = Row_L To Row_U
RetAry(Base_Row + i - Row_L, BaseCol + j - Col_L) = DataAry(i, j)
Next
Next
End Select
fArray_BaseN = RetAry
End Function