20200725_配列の次元数に関係なく読み書きする関数
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Rem -------------------------------------------------------------------------------- | |
Rem | |
Rem @module kccFuncArrayPartial | |
Rem | |
Rem @description 配列操作関数 | |
Rem | |
Rem @update 2020/07/26 | |
Rem | |
Rem @author @KotorinChunChun (GitHub / Twitter) | |
Rem | |
Rem @license MIT (http://www.opensource.org/licenses/mit-license.php) | |
Rem | |
Rem @URL https://gist.github.com/KotorinChunChun/4ca29be3d69ef160bd5d044737658c9f | |
Rem | |
Rem -------------------------------------------------------------------------------- | |
Option Explicit | |
Rem メモリブロックの内容を別のメモリブロックにコピーする | |
#If VBA7 Then | |
Private Type Pointer: Value As LongPtr: End Type | |
Private Declare PtrSafe Sub RtlMoveMemory Lib "Kernel32" (ByRef pDest As Any, ByRef pSrc As Any, ByVal Length As LongPtr) | |
#Else | |
Private Type Pointer: Value As Long: End Type | |
Private Declare Sub RtlMoveMemory Lib "Kernel32" (ByRef pDest As Any, ByRef pSrc As Any, ByVal Length As Long) | |
#End If | |
Private Type TtagVARIANT | |
vt As Integer | |
r1 As Integer | |
r2 As Integer | |
r3 As Integer | |
sa As Pointer | |
End Type | |
Rem -------------------------------------------------------------------------------- | |
Rem Core共通 | |
Rem 変数に値を代入 | |
Rem | |
Rem @creator https://qiita.com/nukie_53/items/bde16afd9a6ca789949d | |
Rem | |
Rem @param outVariable 出力先変数 | |
Rem @param inExpression 書き込み内容 | |
Rem | |
Rem @example SetVar(out) = in | |
Rem | |
Public Property Let SetVar(outVariable As Variant, inExpression As Variant) | |
If VBA.IsObject(inExpression) Then | |
Set outVariable = inExpression | |
ElseIf VBA.VarType(inExpression) = vbDataObject Then | |
Set outVariable = inExpression | |
Else | |
Let outVariable = inExpression | |
End If | |
End Property | |
Rem 次元数不定の変数に値を代入 | |
Rem | |
Rem @param outArr 出力先変数 | |
Rem @param idxs() 出力先インデックス配列 | |
Rem @param inExpression 書き込み内容 | |
Rem | |
Rem @example SetArr(arr, i, j) = in | |
Rem | |
Rem @note | |
Rem 過剰に付与されたインデックスは無視される | |
Rem | |
Public Property Let SetArr(outArr, ParamArray idxs(), inExpression As Variant) | |
Select Case GetArrayDimension(outArr) | |
Case 0: SetVar(outArr) = inExpression | |
Case 1: SetVar(outArr(idxs(0))) = inExpression | |
Case 2: SetVar(outArr(idxs(0), idxs(1))) = inExpression | |
Case 3: SetVar(outArr(idxs(0), idxs(1), idxs(2))) = inExpression | |
Case 4: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3))) = inExpression | |
Case 5: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4))) = inExpression | |
Case 6: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5))) = inExpression | |
Case 7: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6))) = inExpression | |
Case 8: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7))) = inExpression | |
Case 9: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8))) = inExpression | |
Case 10: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9))) = inExpression | |
Case 11: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10))) = inExpression | |
Case 12: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11))) = inExpression | |
Case 13: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12))) = inExpression | |
Case 14: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13))) = inExpression | |
Case 15: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14))) = inExpression | |
Case 16: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15))) = inExpression | |
Case 17: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16))) = inExpression | |
Case 18: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17))) = inExpression | |
Case 19: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18))) = inExpression | |
Case 20: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19))) = inExpression | |
Case 21: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20))) = inExpression | |
Case 22: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21))) = inExpression | |
Case 23: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22))) = inExpression | |
Case 24: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23))) = inExpression | |
Case 25: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24))) = inExpression | |
Case 26: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25))) = inExpression | |
Case 27: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26))) = inExpression | |
Case 28: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27))) = inExpression | |
Case 29: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28))) = inExpression | |
Case 30: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29))) = inExpression | |
Case 31: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30))) = inExpression | |
Case 32: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31))) = inExpression | |
Case 33: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32))) = inExpression | |
Case 34: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33))) = inExpression | |
Case 35: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34))) = inExpression | |
Case 36: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35))) = inExpression | |
Case 37: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36))) = inExpression | |
Case 38: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37))) = inExpression | |
Case 39: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38))) = inExpression | |
Case 40: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39))) = inExpression | |
Case 41: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40))) = inExpression | |
Case 42: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41))) = inExpression | |
Case 43: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42))) = inExpression | |
Case 44: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43))) = inExpression | |
Case 45: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44))) = inExpression | |
Case 46: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45))) = inExpression | |
Case 47: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46))) = inExpression | |
Case 48: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47))) = inExpression | |
Case 49: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48))) = inExpression | |
Case 50: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49))) = inExpression | |
Case 51: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50))) = inExpression | |
Case 52: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51))) = inExpression | |
Case 53: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52))) = inExpression | |
Case 54: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53))) = inExpression | |
Case 55: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54))) = inExpression | |
Case 56: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55))) = inExpression | |
Case 57: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56))) = inExpression | |
Case 58: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56), idxs(57))) = inExpression | |
Case 59: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56), idxs(57), idxs(58))) = inExpression | |
Case 60: SetVar(outArr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56), idxs(57), idxs(58), idxs(59))) = inExpression | |
End Select | |
End Property | |
Rem 次元数不定の変数の値を取得 | |
Rem | |
Rem @param arr 読込元変数 | |
Rem @param idxs() 読込元インデックス配列 | |
Rem | |
Rem @return As Variant 取得データ | |
Rem | |
Rem @example v = GetArr(arr, i, j) | |
Rem | |
Rem @note | |
Rem 過剰に付与されたインデックスは無視される | |
Rem | |
Public Property Get GetArr(arr, ParamArray idxs()) | |
Select Case GetArrayDimension(arr) | |
Case 0: SetVar(GetArr) = arr | |
Case 1: SetVar(GetArr) = arr(idxs(0)) | |
Case 2: SetVar(GetArr) = arr(idxs(0), idxs(1)) | |
Case 3: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2)) | |
Case 4: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3)) | |
Case 5: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4)) | |
Case 6: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5)) | |
Case 7: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6)) | |
Case 8: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7)) | |
Case 9: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8)) | |
Case 10: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9)) | |
Case 11: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10)) | |
Case 12: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11)) | |
Case 13: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12)) | |
Case 14: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13)) | |
Case 15: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14)) | |
Case 16: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15)) | |
Case 17: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16)) | |
Case 18: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17)) | |
Case 19: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18)) | |
Case 20: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19)) | |
Case 21: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20)) | |
Case 22: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21)) | |
Case 23: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22)) | |
Case 24: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23)) | |
Case 25: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24)) | |
Case 26: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25)) | |
Case 27: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26)) | |
Case 28: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27)) | |
Case 29: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28)) | |
Case 30: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29)) | |
Case 31: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30)) | |
Case 32: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31)) | |
Case 33: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32)) | |
Case 34: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33)) | |
Case 35: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34)) | |
Case 36: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35)) | |
Case 37: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36)) | |
Case 38: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37)) | |
Case 39: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38)) | |
Case 40: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39)) | |
Case 41: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40)) | |
Case 42: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41)) | |
Case 43: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42)) | |
Case 44: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43)) | |
Case 45: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44)) | |
Case 46: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45)) | |
Case 47: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46)) | |
Case 48: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47)) | |
Case 49: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48)) | |
Case 50: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49)) | |
Case 51: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50)) | |
Case 52: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51)) | |
Case 53: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52)) | |
Case 54: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53)) | |
Case 55: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54)) | |
Case 56: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55)) | |
Case 57: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56)) | |
Case 58: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56), idxs(57)) | |
Case 59: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56), idxs(57), idxs(58)) | |
Case 60: SetVar(GetArr) = arr(idxs(0), idxs(1), idxs(2), idxs(3), idxs(4), idxs(5), idxs(6), idxs(7), idxs(8), idxs(9), idxs(10), idxs(11), idxs(12), idxs(13), idxs(14), idxs(15), idxs(16), idxs(17), idxs(18), idxs(19), idxs(20), idxs(21), idxs(22), idxs(23), idxs(24), idxs(25), idxs(26), idxs(27), idxs(28), idxs(29), idxs(30), idxs(31), idxs(32), idxs(33), idxs(34), idxs(35), idxs(36), idxs(37), idxs(38), idxs(39), idxs(40), idxs(41), idxs(42), idxs(43), idxs(44), idxs(45), idxs(46), idxs(47), idxs(48), idxs(49), idxs(50), idxs(51), idxs(52), idxs(53), idxs(54), idxs(55), idxs(56), idxs(57), idxs(58), idxs(59)) | |
End Select | |
End Property | |
Rem 次元数違反でエラーの起こらないLBound | |
Rem Lower Bound Through | |
Public Function LBT(var, dimension As Long) | |
LBT = 1 | |
On Error Resume Next | |
LBT = LBound(var, dimension) | |
End Function | |
Rem 次元数違反でエラーの起こらないUBound | |
Rem Upper Bound Through | |
Public Function UBT(var, dimension As Long) | |
UBT = 1 | |
On Error Resume Next | |
UBT = UBound(var, dimension) | |
End Function | |
Rem -------------------------------------------------------------------------------- | |
Rem 配列の次元数を求める | |
Rem | |
Rem @param arr 対象配列 | |
Rem | |
Rem @return As Long 次元数 | |
Rem | |
Rem @example | |
Rem 非配列 : 次元数: 0 | |
Rem 静的1次元 : 次元数: 1 | |
Rem 静的2次元 : 次元数: 2 | |
Rem 静的3次元 : 次元数: 3 | |
Rem 動的空配列 : 次元数: 0 | |
Rem 動的1次元 : 次元数: 1 | |
Rem | |
Public Function GetArrayDimension(arr As Variant) As Long | |
Const VT_ARRAY = &H2000 | |
Const VT_BYREF = &H4000 | |
Dim va As TtagVARIANT | |
RtlMoveMemory va, arr, LenB(va) | |
If va.vt And VT_ARRAY Then Else Exit Function | |
If va.vt And VT_BYREF Then RtlMoveMemory va.sa, ByVal va.sa.Value, LenB(va.sa) | |
If va.sa.Value Then RtlMoveMemory GetArrayDimension, ByVal va.sa.Value, 2 | |
End Function | |
Rem 多次元配列のテストデータを作成する(とりあえず5次元まで) | |
Function CreateTestArray(lb As Long, ParamArray dN_size()) | |
Dim d1, d2, d3, d4, d5 | |
Rem 上限要素数 | |
Dim ub(1 To 5) | |
Dim i As Long | |
'Emptyだと飛ばされるのでlbで埋めておく | |
For i = LBound(ub) To UBound(ub): ub(i) = lb: Next | |
'序盤には指定された項目数を設定 | |
For i = LBound(dN_size) To UBound(dN_size): ub(i + 1) = dN_size(i) - (1 - lb): Next | |
Dim arr | |
Select Case UBound(dN_size, 1) + 1 | |
Case 1: ReDim arr(lb To ub(1)) | |
Case 2: ReDim arr(lb To ub(1), lb To ub(2)) | |
Case 3: ReDim arr(lb To ub(1), lb To ub(2), lb To ub(3)) | |
Case 4: ReDim arr(lb To ub(1), lb To ub(2), lb To ub(3), lb To ub(4)) | |
Case 5: ReDim arr(lb To ub(1), lb To ub(2), lb To ub(3), lb To ub(4), lb To ub(5)) | |
End Select | |
For d1 = lb To ub(1): For d2 = lb To ub(2): For d3 = lb To ub(3): For d4 = lb To ub(4): For d5 = lb To ub(5) | |
SetArr(arr, d1, d2, d3, d4, d5) = Join(Array(d1, d2, d3, d4, d5), "-") | |
Next: Next: Next: Next: Next | |
CreateTestArray = arr | |
End Function |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Option Explicit | |
Rem 動的に多次元配列のテストデータを生成するテスト | |
Sub Test_CreateTestArray() | |
Dim tStart As Single, tStop As Single: tStart = Timer | |
Dim i | |
For i = 1 To 1000 | |
Dim arr | |
arr = CreateTestArray(1, 5, 4, 3, 4, 5) | |
Next | |
tStop = Timer: Debug.Print Format$(tStop - tStart, "0.00") & " sec." | |
' Stop | |
End Sub | |
Rem 0次元、1次元、2次元の変数を出力するテスト | |
Sub Test_DebugPrintVar() | |
Dim v0: v0 = 1 | |
Dim v1: v1 = [{1,2,3}] | |
Dim v2: v2 = [{1,2,3;4,5,6;7,8,9}] | |
Dim v3: v3 = CreateTestData3(1, 2, 3) | |
DebugPrintVar v0 | |
DebugPrintVar v1 | |
DebugPrintVar v2 | |
DebugPrintVar v3 | |
End Sub | |
Rem 変数の内容を出力するだけのプロシージャ | |
Sub DebugPrintVar(v) | |
Dim d1, d2, d3 | |
For d1 = LBT(v, 1) To UBT(v, 1) | |
For d2 = LBT(v, 2) To UBT(v, 2) | |
For d3 = LBT(v, 3) To UBT(v, 3) | |
Debug.Print _ | |
"v(" & d1 & "," & d2 & "," & d3 & ")", _ | |
GetArr(v, d1, d2, d3) | |
Next | |
Next | |
Next | |
Debug.Print | |
End Sub | |
Rem 従来方式1 | |
Sub Test_DebugPrintVarNG1() | |
Dim v0: v0 = 1 | |
Dim v1: v1 = [{1,2,3}] | |
Dim v2: v2 = [{1,2,3;4,5,6;7,8,9}] | |
' DebugPrintVarNG1 v0 '←サポート不可 | |
DebugPrintVarNG1 v1 | |
DebugPrintVarNG1 v2 | |
End Sub | |
Rem 0次元が出力出来ない/インデックスが分からない/方向が固定される | |
Sub DebugPrintVarNG1(v) | |
Dim item | |
For Each item In v | |
Debug.Print "v(?)", item | |
Next | |
Debug.Print | |
End Sub | |
Rem 従来方式2 | |
Sub Test_DebugPrintVarNG2() | |
Dim v0: v0 = 1 | |
Dim v1: v1 = [{1,2,3}] | |
Dim v2: v2 = [{1,2,3;4,5,6;7,8,9}] | |
' DebugPrintVarNG2 v0 '←サポート不可 | |
' DebugPrintVarNG2 v1 '←サポート不可 | |
DebugPrintVarNG2 v2 | |
End Sub | |
Rem 2次元まで対応した関数の場合、二次元以外は全てインデックスがありません | |
Sub DebugPrintVarNG2(v) | |
Dim i As Long, j As Long | |
For i = LBound(v, 1) To UBound(v, 1) | |
For j = LBound(v, 2) To UBound(v, 2) | |
Debug.Print "v(" & i & "," & j & ")", v(i, j) | |
Next | |
Next | |
Debug.Print | |
End Sub | |
Rem 非配列、一次元配列、二次元配列、三次元配列の内容を出力するテスト | |
Sub Test_DebugPrintVar_012() | |
Dim v0: v0 = 1 | |
Dim v1: v1 = VBA.Array(1, 2, 3) | |
Dim v2: v2 = [{1,2;3,4;5,6}] | |
Dim v3: v3 = CreateTestData3(1, 2, 3) | |
DebugPrintVar_012 v0 | |
DebugPrintVar_012 v1 | |
DebugPrintVar_012 v2 | |
DebugPrintVar_012 v3 | |
End Sub | |
Rem 変数vの内容をイミディエイトに出力するプロシージャ | |
Sub DebugPrintVar_012(v) | |
Dim i As Long, j As Long, k As Long | |
Select Case GetArrayDimension(v) | |
Case 0 | |
Debug.Print "v", v | |
Case 1 | |
For i = LBound(v, 1) To UBound(v, 1) | |
Debug.Print "v(" & i & ")", v(i) | |
Next | |
Case 2 | |
For i = LBound(v, 1) To UBound(v, 1) | |
For j = LBound(v, 2) To UBound(v, 2) | |
Debug.Print "v(" & i & "," & j & ")", v(i, j) | |
Next | |
Next | |
Case 3 | |
For i = LBound(v, 1) To UBound(v, 1) | |
For j = LBound(v, 2) To UBound(v, 2) | |
For k = LBound(v, 3) To UBound(v, 3) | |
Debug.Print _ | |
"v(" & i & "," & j & "," & k & ")", _ | |
v(i, j, k) | |
Next | |
Next | |
Next | |
End Select | |
Debug.Print | |
End Sub | |
Rem 3次元配列のテストデータを作成する | |
Rem @param s1,s2,s3 配列の要素数 | |
Rem @return 1-2-3形式の文字列の格納された三次元配列 | |
Function CreateTestData3(s1, s2, s3) | |
Dim i As Long, j As Long, k As Long | |
Dim v | |
ReDim v(1 To s1, 1 To s2, 1 To s3) | |
For i = LBound(v, 1) To UBound(v, 1) | |
For j = LBound(v, 2) To UBound(v, 2) | |
For k = LBound(v, 3) To UBound(v, 3) | |
v(i, j, k) = Join(Array(i, j, k), "-") | |
Next | |
Next | |
Next | |
CreateTestData3 = v | |
End Function | |
Sub Test_Bound() | |
Dim v0: v0 = 1 | |
Dim v1: v1 = [{1,2,3}] | |
Dim v2: v2 = [{1,2;3,4;5,6}] | |
Debug.Print "v0 : " & LBT(v0, 1) & " To " & UBT(v0, 1) | |
Debug.Print "v0 : " & LBT(v0, 2) & " To " & UBT(v0, 2) | |
Debug.Print "v0 : " & LBT(v0, 3) & " To " & UBT(v0, 3) | |
Debug.Print | |
Debug.Print "v1 : " & LBT(v1, 1) & " To " & UBT(v1, 1) | |
Debug.Print "v1 : " & LBT(v1, 2) & " To " & UBT(v1, 2) | |
Debug.Print "v1 : " & LBT(v1, 3) & " To " & UBT(v1, 3) | |
Debug.Print | |
Debug.Print "v2 : " & LBT(v2, 1) & " To " & UBT(v2, 1) | |
Debug.Print "v2 : " & LBT(v2, 2) & " To " & UBT(v2, 2) | |
Debug.Print "v2 : " & LBT(v2, 3) & " To " & UBT(v2, 3) | |
Debug.Print | |
End Sub | |
Sub Test_SetVar() | |
Dim lit As Long::: Let lit = 1 | |
Dim obj As Object: Set obj = New Collection | |
Dim v | |
Let v = lit '正常に動く | |
' Set v = lit 'コンパイルエラー | |
SetVar(v) = lit '自動でLetされる | |
' Let v = obj '実行時エラー | |
Set v = obj '正常に動く | |
SetVar(v) = obj '自動でSetされる | |
End Sub | |
Sub Test_GetArr() | |
Dim v0: v0 = 1 | |
Dim v1: v1 = [{1,2,3}] | |
Dim v2: v2 = [{1,2,3;4,5,6;7,8,9}] | |
Debug.Print GetArr(v0, 2, 3) | |
Debug.Print GetArr(v1, 2, 3) | |
Debug.Print GetArr(v2, 2, 3) | |
End Sub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment