Last active
July 25, 2020 20:55
-
-
Save KotorinChunChun/4ca29be3d69ef160bd5d044737658c9f to your computer and use it in GitHub Desktop.
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