Excel VBA質問箱 IV

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

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


7626 / 76732 ←次へ | 前へ→

【74692】Re:sortのループ処理
発言  kanabun  - 13/8/30(金) 21:02 -

引用なし
パスワード
   ▼ねこ さん:こんにちは

レスが付かないようなので、こちらで知る限りのことを...

2007以降 のSortには
・WorksheetのSortプロパティと
・(従来からある)RangeのSortメソッド
があると思います。
マクロの記録は WorksheetのSortですね。
ただ、これは 列範囲をループするのには不適当です。

従来通りの、RangeのSortを使えばいいと思います。

ただし 2007以降のワークシートのSortでは
ユーザー設定リストの指定に
>  CustomOrder:= "松山市,高松市,高知市,徳島市"
が直接使えるのですが、
RangeのSortでは OrderCustom:=13 のように
ユーザー設定リスト内にセットした "松山市,高松市,高知市,徳島市"
の番号を指定しないと動きません。
なので "松山市,高松市,高知市,徳島市" は予め マニュアルでユーザー設定
リストにセットしておいてください。

また、下の例では1行目は列見出しと仮定しています。

Sub Sort1()
  Dim i As Long
  Dim n As Long
  Dim L As Long
  
  L = Application.CustomListCount 'ユーザー設定リスト数
  With ActiveSheet.UsedRange
    n = .Columns.Count
    For i = 1 To n Step 3
      .Columns(i).Resize(, 3).Sort _
        Key1:=.Columns(i + 1), _
        Order1:=xlAscending, _
        OrderCustom:=L + 1, _
        Header:=xlYes     ’列見出しあり
    Next
  End With
  
End Sub

4 hits

【74688】sortのループ処理 ねこ 13/8/30(金) 0:38 質問
【74692】Re:sortのループ処理 kanabun 13/8/30(金) 21:02 発言
【74712】Re:sortのループ処理 kanabun 13/9/2(月) 10:28 発言

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