| 
    
     |  | ▼ゆう さん: こんばんは。
 
 Macで確認しておりません
 (というより、持ってませんし、正直、わかりません)。
 
 >1点だけ問題点があったのですが
 >C行でセルの文字列のデータで全角スペースが入るモノがC行に残ってしましました。具体的に書きますと移動を2回するものだと
 >C行="A B"だとするとC1には問題なく"A B"がきますがM1には"B"だけがいどうされC行の下には"A"だけが残っている感じです。
 >こんな表現でわかっていただけるでしょうか?
 意味はわかりました。ただ、↑の現象が確認できません・・。
 こんなデータでテストしましたが、
 A    B    C  ・・・・・・J
 1 項目1  項目2  項目3 ・・・・・項目10
 2 A B  A B  A B ・・・  A B
 3 A B  A B  A B ・・・  A B
 4 A B  A B  A B ・・・  A B
 5 A B  A B  A B ・・・  A B
 6 A B  A B  A B ・・・  A B
 ・
 ・
 ・
 ・
 16 A B  A B  A B ・・・  A B
 
 というようにセルA1〜J10に項目名、セルA2〜J16まで、全て「A B」
 というデータを入れて、
 プロシジャー「行2移動」を実行させましたが、
 正常に配置されています。
 不具合が発生する最も簡単なデータ例を記述していただければ
 こちらでも確認します。
 
 >もしお時間があれば簡単なコメントを入れていただければ
 >もう少し次につなげられると思います。
 
 Sub 移動(Keynum As Long)
 For idx = 2 To Cells(Rows.Count, 1).End(xlUp).Row
 Range(Cells((idx - 2) \ Keynum + 1, ((idx - 2) Mod Keynum) * 10 + 1), _
 Cells((idx - 2) \ Keynum + 1, ((idx - 2) Mod Keynum) * 10 + 10)).Value = _
 Range(Cells(idx, 1), Cells(idx, 10)).Value
 Range(Cells(idx, 1), Cells(idx, 10)).Value = ""
 Next
 End Sub
 ↑これの内容ですよね?
 2行づつ移動する場合を考えてみます。
 
 A列にあるセルがどこに移動すればよいかを考えます。
 
 元の行  新しい行  新しい列
 2     1     1(A列)
 3     1     11(K列)
 4     2     1
 5     2     11
 ・
 ・
 2行目のセルA2にあったデータは、1行目の1列(A列)に移動する。
 3行目のセルA3にあったデータは、1行目の11列(K列)に移動する。
 ってことは、元の行数から何らかの計算式で移動する行と列が導き出されれば
 OKですよね?
 fx(2)=1、fx(3)=1、fx(4)=2、fx(5)=2のような新しい行位置を算出する計算式と
 gx(2)=1、gx(3)=11、gx(4)=1、gx(5)=11のような新しい列位置を算出する計算式。
 
 新しい行=(元の行-2)/2の整数部 + 1
 新しい列=(元の行-2)/2の余り * 10 + 1
 
 で、うえの表のとおりになりますよね?
 
 8行づつ移動する場合も表を作ってみて下さい(省略しますが)
 
 新しい行=(元の行-2)/8の整数部 + 1
 新しい列=(元の行-2)/8の余り * 10 + 1
 
 となると思います。
 上記の式を元のデータのA列の移動セルとするようにVBAで記述すると
 
 Cells((idx - 2) \ Keynum + 1, ((idx - 2) Mod Keynum) * 10 + 1)
 
 のようになります(不具合があるから心配だけど)。
 
 idx・・・・元の行
 Keynum・・何行づつ移動するかという行数
 
 移動するコードがFor〜Nextを用いて、2行目から、
 A列の終わりまで繰り返されています。
 
 異常(シャレ)ですが、わかっていただけますか?
 
 不具合の例題データ、是非教えて下さい。
 
 |  |