|
余談ですが、使われ方の1例として
VBAには、「\演算子」と対に成る「MOD演算子」(剰余を求める)が有ります
意味は、小学校でやる最初の割り算を思い出して下さい
「5割る2はいくつ? 答え2で余り1」
上記の「答え2」を求める演算子が「\」で
「余り1」を求める演算子が「MOD」です
此れは、考え方を変えると、
「\」演算子はグループ番号を返す演算子
「MOD」演算子はグループ内の順位を返す演算子と捉えるこもできます
例えば、2つの配列変数が有り、
配列変数Aは基底0(0から始まる配列変数)で15列の1元配列とします(添え字の番号は0〜14)
Dim A(14) As Long
配列変数Bは基底0(0から始まる配列変数)で4列、4行の2元配列とします(添え字の番号は0〜3、0〜3)
Dim B(3, 3) AsLong
配列変数Aには、1〜15までの数値が入っている物とし
此れを、配列変数BにZ型に数値入れます
Public Sub Test1()
Dim A(14) As Variant
Dim B(3, 3) As Variant
Dim i As Long 'Loopカウンタ
'数値をA配列に入れます
For i = 0 To 14
A(i) = Choose(i + 1, 1, 2, 3, 4, 5, 6, 7, _
8, 9, 10, 11, 12, 13, 14, 15)
Next i
'配列変数Aの内容を配列変数BにZ型に代入します
For i = 0 To 14
B(i \ 4, i Mod 4) = A(i)
Next i
'配列変数AをA1:A15に出力します
Range("A1").Resize(, 15).Value = A
'配列変数BをA3:D6に出力します
Range("A3").Resize(4, 4).Value = B
End Sub
'同じ事を、「\」「MOD」を使わないで行う場合
Public Sub Test2()
Dim A(14) As Variant
Dim B(3, 3) As Variant
Dim i As Long 'Loopカウンタ
Dim j As Long 'Loopカウンタ
Dim k As Long 'Loopカウンタ
'数値をA配列に入れます
For i = 0 To 14
A(i) = Choose(i + 1, 1, 2, 3, 4, 5, 6, 7, _
8, 9, 10, 11, 12, 13, 14, 15)
Next i
'配列変数Aの内容を配列変数BにZ型に代入します
k = 0
For i = 0 To 3
For j = 0 To 3
B(i, j) = A(k)
k = k + 1
If k > 14 Then
Exit For
End If
Next j
If k > 14 Then
Exit For
End If
Next i
'配列変数AをA1:A15に出力します
Range("A1").Resize(, 15).Value = A
'配列変数BをA3:D6に出力します
Range("A3").Resize(4, 4).Value = B
End Sub
と成ります
また、「MOD」は、ある変数値が増えて行く場合、
対と成る変数に一定の値が繰り返されて入る様なコードを書く時にも使われます
|
|