Excel VBA質問箱 IV

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

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


30045 / 76732 ←次へ | 前へ→

【51959】Re:選択した複数のシートをソート
発言  ichinose  - 07/10/12(金) 22:41 -

引用なし
パスワード
   こんばんは。

>選択した複数のシートを対象にソートするには、
>どうしたらいいんでしょうか?
>ActiveWindow.SelectedSheetsを使用すればできそうなのですが
>私のレベルだと、うまくいきません!^^;

並べ替えを行いたいシート群を選択した状態で以下のコードを実行して見てください。
但し、並べ替えの判断は、美貴さんが提示されたコードと同じです。

Sub select_sht_sort()
  Dim g0 As Long, g1 As Long
  Dim sht1 As Worksheet
  Dim sht2 As Worksheet
  Dim ix1 As Long, ix2 As Long
  Dim wk As Variant
  ReDim col(1 To Windows(ThisWorkbook.Name).SelectedSheets.Count)
  For g0 = 1 To Windows(ThisWorkbook.Name).SelectedSheets.Count
    col(g0) = Windows(ThisWorkbook.Name).SelectedSheets(g0).Name
    Next
  For g0 = 1 To UBound(col()) - 1
    Set sht1 = Worksheets(col(g0))
    Set sht2 = Worksheets(col(g0 + 1))
    ix1 = sht1.Index
    ix2 = sht2.Index
    If sht1.Name > sht2.Name Then
     If UBound(col()) > ix2 + 1 Then
       sht1.Move before:=Worksheets(ix2 + 1)
     Else
       sht1.Move after:=Worksheets(ix2)
       End If
     sht2.Move before:=Worksheets(ix1)
     wk = col(g0)
     col(g0) = col(g0 + 1)
     col(g0 + 1) = wk
     For g1 = g0 To 2 Step -1
       Set sht1 = Worksheets(col(g1))
       Set sht2 = Worksheets(col(g1 - 1))
       ix1 = sht1.Index
       ix2 = sht2.Index
       If sht1.Name < sht2.Name Then
        wk = col(g1)
        col(g1) = col(g1 - 1)
        col(g1 - 1) = wk
        If UBound(col()) > ix1 + 1 Then
          sht2.Move before:=Worksheets(ix1 + 1)
        Else
          sht2.Move after:=Worksheets(ix1)
          End If
        sht1.Move before:=Worksheets(ix2)
        End If
       Next
     End If
    Next
  Worksheets(col()).Select
End Sub

↑は、バブルソートのアルゴリズムで作成しました。

1 hits

【51943】選択した複数のシートをソート 美貴 07/10/12(金) 15:25 質問
【51947】Re:選択した複数のシートをソート Jaka 07/10/12(金) 16:33 発言
【51948】Re:選択した複数のシートをソート 美貴 07/10/12(金) 16:41 質問
【51949】Re:選択した複数のシートをソート Jaka 07/10/12(金) 17:29 発言
【51993】Re:選択した複数のシートをソート Jaka 07/10/15(月) 9:19 発言
【51995】Re:選択した複数のシートをソート 美貴 07/10/15(月) 11:11 お礼
【52009】Re:選択した複数のシートをソート Jaka 07/10/16(火) 9:17 発言
【51959】Re:選択した複数のシートをソート ichinose 07/10/12(金) 22:41 発言
【51996】Re:選択した複数のシートをソート 美貴 07/10/15(月) 11:12 お礼

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