Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4029 / 13644 ツリー ←次へ | 前へ→

【58774】VBAに出てくる「\演算子」の意味を教えて kumasan 08/11/9(日) 3:23 質問[未読]
【58775】Re:VBAに出てくる「\演算子」の意味を教えて りん 08/11/9(日) 5:20 発言[未読]
【58776】Re:VBAに出てくる「\演算子」の意味を教えて Hirofumi 08/11/9(日) 8:53 発言[未読]
【58777】Re:VBAに出てくる「\演算子」の意味を教えて ponpon 08/11/9(日) 13:48 発言[未読]

【58774】VBAに出てくる「\演算子」の意味を教えて
質問  kumasan  - 08/11/9(日) 3:23 -

引用なし
パスワード
   VBAの中で時々¥演算子が出てきますが意味が分かりません。教えてください。
お願いします。

【58775】Re:VBAに出てくる「\演算子」の意味を教...
発言  りん E-MAIL  - 08/11/9(日) 5:20 -

引用なし
パスワード
         kumasan さん、こんばんわ。
>VBAの中で時々¥演算子が出てきますが意味が分かりません。教えてください。
>お願いします。

ヘルプより引用
==========================================================
\ 演算子
2 つの数値の商を計算し、結果を整数で返します。

構文
result = number1 \ number2

使用例

Dim MyValue
MyValue = 11 \ 4          ' 2 を返します。
MyValue = 9 \ 3          ' 3 を返します。
MyValue = 100 \ 3          ' 33 を返します。
==========================================================
Truncワークシート関数と同じ結果になります。

【58776】Re:VBAに出てくる「\演算子」の意味を教...
発言  Hirofumi  - 08/11/9(日) 8:53 -

引用なし
パスワード
   余談ですが、使われ方の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」は、ある変数値が増えて行く場合、
対と成る変数に一定の値が繰り返されて入る様なコードを書く時にも使われます

【58777】Re:VBAに出てくる「\演算子」の意味を教...
発言  ponpon  - 08/11/9(日) 13:48 -

引用なし
パスワード
   ▼Hirofumi さん:
横から失礼します。

>此れは、考え方を変えると、
>「\」演算子はグループ番号を返す演算子
>「MOD」演算子はグループ内の順位を返す演算子と捉えるこもできます

↑ 
これ、初め意味がわかりませんでしたが、ようやくわかりました。
おもしろいですね!!
グループ分けの時なんかに使えそうです。

4029 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free