Excel VBA質問箱 IV

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

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


73396 / 76738 ←次へ | 前へ→

【7817】Re:範囲の移動&繰り返しの初心者の質問です。
発言  ichinose  - 03/9/19(金) 0:40 -

引用なし
パスワード
   ▼ゆう さん:
こんばんは。

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列の終わりまで繰り返されています。

異常(シャレ)ですが、わかっていただけますか?

不具合の例題データ、是非教えて下さい。
0 hits

【7808】範囲の移動&繰り返しの初心者の質問です。 ゆう 03/9/18(木) 20:21 質問
【7810】Re:範囲の移動&繰り返しの初心者の質問です... ichinose 03/9/18(木) 21:25 回答
【7813】Re:範囲の移動&繰り返しの初心者の質問です... ichinose 03/9/18(木) 22:34 発言
【7814】Re:範囲の移動&繰り返しの初心者の質問です... ゆう 03/9/18(木) 22:43 発言
【7817】Re:範囲の移動&繰り返しの初心者の質問です... ichinose 03/9/19(金) 0:40 発言
【7825】Re:範囲の移動&繰り返しの初心者の質問です... ゆう 03/9/19(金) 10:40 お礼

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