Excel VBA質問箱 IV

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

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


17227 / 76732 ←次へ | 前へ→

【64962】Re:列によるソート
発言  kanabun  - 10/3/30(火) 14:03 -

引用なし
パスワード
   ▼もーはん さん:
>kanabun さんへ
>
>内容はやりたいことズバリでした。
>コードについてお聞きしたいのですが、
>
>この部分のコードの意味が良く理解出来ません。お教え願います。
>>    If Len(c(1).ID) Then
>>      ok = 1
>>      If i > 1 Then
>>        If c(0, 1).Value = c(1, 1).Value Then ok = 0
>>      End If
>>      c.Cut c(ok, 5)
>>      If ok = 0 Then Rows(i).Delete
>>    End If
>>  Next
>>  
>>End Sub

>  '[A]列データのうちIDのあるものを 元のE列に戻す
   'Sort後のA列を一番下のデータセルから順に調べていきます
   '(なぜ下からかというと、行削除することがあるため)
>   For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
     '↓変数c に i行のA:B列分をセットします
>     Set c = Cells(i, 1).Resize(, 2)
     '↓c範囲のA列のIDに何か文字列が入っていたら、元の列に
     ' 戻す処理を行います
>     If Len(c(1).ID) Then
       '移動先行はi行のことと(i-1)行のことがあるので
       'その分岐をする変数ok の初期値を1にします
       '(ok=1 のときは 同じi行です)
>       ok = 1
>       If i > 1 Then
         '↑調査行が2行目以降のときだけ
         ' ↓ひとつ上のセルの値と同じかどうか、調べます
         '  同じであれば、変数okを 0 に代えます
>         If c(0, 1).Value = c(1, 1).Value Then ok = 0
>       End If
       '以上で、上のセルの値との比較が実行されました。
       '↓i行のA,B列範囲をCutしてE列に移動します。
         範囲c をCut して、範囲cから見て
         ok行目の5列目に範囲を移動します。
         (A列のi行の値が(i-1)行の値と同じなら ok = 0、
         ちがっていれば ok = 1 です)
         ok = 1 なら、いま調査しているi行のこと、
         ok = 0 なら、ひとつ上の(i-1)行へ、ということです。
>       c.Cut c(ok, 5)
       ' ↓ひとつ上の行へ移動したときは元のi行全体を削除します
>       If ok = 0 Then Rows(i).Delete
>     End If
>   Next '以上を1行目まで繰り返します
1 hits

【64902】列によるソート もーはん 10/3/25(木) 22:10 質問
【64903】Re:列によるソート kanabun 10/3/25(木) 23:10 発言
【64947】Re:列によるソート もーはん 10/3/29(月) 10:09 質問
【64951】Re:列によるソート kanabun 10/3/29(月) 13:18 発言
【64953】Re:列によるソート もーはん 10/3/29(月) 15:47 発言
【64954】Re:列によるソート kanabun 10/3/29(月) 16:42 発言
【64961】Re:列によるソート もーはん 10/3/30(火) 13:02 発言
【64962】Re:列によるソート kanabun 10/3/30(火) 14:03 発言
【64965】Re:列によるソート もーはん 10/3/30(火) 17:29 お礼
【64958】Re:列によるソート Hirofumi 10/3/29(月) 23:31 回答

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