Excel VBA質問箱 IV

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

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


13536 / 13646 ツリー ←次へ | 前へ→

【4829】データの並び替えについて 澤田 淳 03/4/9(水) 17:43 質問
【4832】Re:データの並び替えについて ポンタ 03/4/9(水) 18:56 回答
【4876】Re:データの並び替えについて 澤田 淳 03/4/11(金) 17:36 質問
【4878】Re:データの並び替えについて ポンタ 03/4/11(金) 19:58 回答
【4965】Re:データの並び替えについて 澤田 淳 03/4/15(火) 17:40 お礼

【4829】データの並び替えについて
質問  澤田 淳  - 03/4/9(水) 17:43 -

引用なし
パスワード
   A列に元データB列に並べる個数が入力されています。
5個であったり7個であったり個数は一定ではありません。
順に7列まで隙間なく並べたいのですがどうすればできるでしょうか。

あ    5
い    7
う    9
え    7
お    5
か    7
き    7
く    7
け    9
こ    5

あ    あ    あ    あ    あ    い    い
い    い    い    い    い    う    う
う    う    う    う    う    う    う
え    え    え    え    え    え    え
お    お    お    お    お    か    か
か    か    か    か    か    き    き
き    き    き    き    き    く    く
く    く    く    く    く    け    け
け    け    け    け    け    け    け
こ    こ    こ    こ    こ    

【4832】Re:データの並び替えについて
回答  ポンタ  - 03/4/9(水) 18:56 -

引用なし
パスワード
   標準モジュールに貼り付けて、お試しください。

Sub test()
  Dim i As Long, j As Long, k As Long
  Application.ScreenUpdating = False
  Call Range("A:G").Insert(xlShiftToRight)
  k = 7
  For i = 1 To Range("H63356").End(xlUp).Row
    For j = 1 To Cells(i, "I").Value
      Cells(Int(k / 7), (k Mod 7) + 1).Value = Cells(i, "H").Value
      k = k + 1
    Next
  Next
  Range("H:I").ClearContents
  Application.ScreenUpdating = True
End Sub

【4876】Re:データの並び替えについて
質問  澤田 淳  - 03/4/11(金) 17:36 -

引用なし
パスワード
   ▼ポンタ さん:
>標準モジュールに貼り付けて、お試しください。
>
>Sub test()
>  Dim i As Long, j As Long, k As Long
>  Application.ScreenUpdating = False
>  Call Range("A:G").Insert(xlShiftToRight)
>  k = 7
>  For i = 1 To Range("H63356").End(xlUp).Row
>    For j = 1 To Cells(i, "I").Value
>      Cells(Int(k / 7), (k Mod 7) + 1).Value = Cells(i, "H").Value
>      k = k + 1
>    Next
>  Next
>  Range("H:I").ClearContents
>  Application.ScreenUpdating = True
>End Sub


ポンタ様
有難うございました。
アッと言う間に出来ました。

もう一つ教えていただきたいのですが背景色や文字色が
指定されている場合も有るのですがどうすれば良いでしょうか。
教えていただいたコードで実行するとH列に背景色だけ出てきました。
背景色が黄色で文字色が紺色のものと
背景色が青色で文字色が黄色のものが有ります。
配置やフォントも決まっています。
セルの書式設定もコピーできますか。

【4878】Re:データの並び替えについて
回答  ポンタ  - 03/4/11(金) 19:58 -

引用なし
パスワード
   修正しました。

Sub test()
  Dim i As Long, j As Long, k As Long
  Application.ScreenUpdating = False
  Call Range("A:G").Insert(xlShiftToRight)
  k = 7
  For i = 1 To Range("H63356").End(xlUp).Row
    For j = 1 To Cells(i, "I").Value
      Call Cells(i, "H").Copy(Cells(Int(k / 7), (k Mod 7) + 1))
      k = k + 1
    Next
  Next
  Call Range("H:I").Delete(xlShiftToLeft)
  Application.ScreenUpdating = True
End Sub

【4965】Re:データの並び替えについて
お礼  澤田 淳  - 03/4/15(火) 17:40 -

引用なし
パスワード
   ▼ポンタ さん:
>修正しました。
>
>Sub test()
>  Dim i As Long, j As Long, k As Long
>  Application.ScreenUpdating = False
>  Call Range("A:G").Insert(xlShiftToRight)
>  k = 7
>  For i = 1 To Range("H63356").End(xlUp).Row
>    For j = 1 To Cells(i, "I").Value
>      Call Cells(i, "H").Copy(Cells(Int(k / 7), (k Mod 7) + 1))
>      k = k + 1
>    Next
>  Next
>  Call Range("H:I").Delete(xlShiftToLeft)
>  Application.ScreenUpdating = True
>End Sub

ポンタ様
有難うございました。
一つ一つコピー貼り付けでやっていたら気の遠くなるような作業
ですが簡単にできました。

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