[[20140715161704]] 『ループのかけ方がよくわかりません』(ららら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ループのかけ方がよくわかりません』(ららら)

この様なデータを

        A        B     C      D       E
 1  取引先番号    りんご  みかん バナナ ブドウ
 2    5021         1
 3    5021                   4
 4    5021                                   3 
 5    0354                   6
 6    0354                          1
 7    0354         5
 8    2256                          5 
 9    2256                                   5

この様な形に変えたいです

       A        B     C      D       E
 1  取引先番号    りんご  みかん バナナ ブドウ
 2    5021         1         4               3
 3    0354         5         6      1
 4    2256                          5        5

データの量は月によって変動します。

自分で作れたのは以下までです

Dim a As Long 'アクティブセルの値をaに格納
Dim b As Long 'アクティブセルの一行下の値をbに格納
Dim j As Long 'アクティブセルの行番号を取得
Dim s As Long 'アクティブセルの列番号を取得

    Range("A2").Select
    a = ActiveCell.Value
    j = ActiveCell.Row

    ActiveCell.Offset(1, 0).Select
    b = ActiveCell.Value

     If a = b Then
      ActiveCell.End(xlToRight).Select
      s = ActiveCell.Column
      Selection.Copy
      Cells(j, s).Select
      ActiveSheet.Paste
      Rows(j + 1).Delete shift:=xlUp

     Else
       ActiveCell.Offset(1, 0).Select

     End If

End Sub

これを実行すると最初の取引先番号は、何度が実行すると一行にまとめられるのですが、2件目以降がうまくできません。
どのようにループをかければいいのか、教えていただけないでしょうか。
また、マクロにはあまり詳しくないので、もっとスッキリとしたマクロの組み方があれば教えてください。

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 どこかで見た処理だと思ったらこの関連でしょうか。
[[20140605101246]] 『データの形を変えて表示したい』(ららら)
 関連質問があるときは、リンクされるとよいと思います。

 上のやり方を基にしてコードを書くと、こんなようにもできると思います。

 Sub サンプル()
    Dim 基準セル As Range
    Set 基準セル = Range("A2")

    Dim 比較セル As Range
    Do While 基準セル.Value <> ""
        Set 比較セル = 基準セル.Offset(1, 0)
        If 基準セル.Value = 比較セル.Value Then
            With 比較セル.End(xlToRight)
                .Offset(-1, 0).Value = .Value
            End With
            比較セル.EntireRow.Delete
        Else
            Set 基準セル = 基準セル.Offset(1, 0)
        End If
    Loop
 End Sub
(Mook) 2014/07/15(火) 17:02

Mook様

前回同様、早速返信を頂きありがとうございます。
やってみましたができました!
またまた、前回に続いて大変作業がしやすくなりました。
ありがとうございます。

内容もスッキリとしてわかりやすいです。

また、今後は関連する質問の場合はリンクを貼るように気を付けます。

(ららら) 2014/07/15(火) 17:22


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.