intRow=Range("B3") .End(xlDown) .Row     intRow=31
intP=intRow −2                    29=31ー2

K=intP \ 8                      3=29 \ 8   
                          整数商=3 となり
M=intP Mod 8                    5=29 Mod 8
                          剰余=5   となる。
For Next で、行の位置や列の位置を割り出しに使用する、共通した計算式が上の表である。

Range("B" & 3+8 * ( i −1) & " : " & "B" & 2+( 8 * i )) .Select

Range("B" & 3+8 * ( i −1) & " : "    ' 1回目の選択範囲の上先端の行番号は、3行目であるが、
                      ' 2回目の先頭は11行目なので、1回目は 3+(8×0)で
                      ' 3行目が選択され、2回目は 3+(8×1) で11行目になる。
                      ' i を係数として使用することができることが分かる。

"B" & 2+(8 * i)) .Select         ' 1回目の選択範囲の下端行番号は10行目で、2回目は18行目
                     ' なので、1回目は 2+(8×0) で、2回目は 2+(8×1) になる。
                     ' i を係数として使用することができることが分かる。
intRow=Range("B3") .End(xlDown) .Row   ' B3列のデータの端末行番の検知
intP=intRow −2                ' 実際のデータ行数の算出(2は上部の空白行数)
K=intP \ 8        ' 整数商       実際のデータ数を8で割って何個あるのか、
M=intP Mod 8       ' Mod=剰余      その余りの行数
B列のようなデータがあるのを、行数を分割して
表に転記しようとする場合。
データ行を表の行数で割って、何列になるのか、
余りは何行かを計算しなくてはならない。
計算とデータの転記を同時に行うには、プログラムの構造を先に考える必要がある。

1.簡単に行うために、データのコピーと値だけの
 貼り付けを使用する。
2.表の行数が8だから、何回かコピーと貼り付けを
 繰り返す必要がある。
3.For Next を使用する。
4.計算は、コピーする先端の行番号と、コピーする
 端末の行番号が必要である。
5.データは8行分割で何個あるのかを、整数商を使用
 する。
6.データを8分割した余りは何行かを、剰余を使用す
 る。
 
基本的なマクロの習得
整数商と剰余の計算


実際に使っているシステムの内容で解説
  EXCEL VBA 講座