VBA シートを五十音順で並び替え(ソート)する方法



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

Excelを使用していると沢山のシートを扱う時があるかもしれません、例えば個人の情報で個人別でシートを用紙してある場合などの場合は得意すごい数になってしまうかもしれません(;^ω^)

このような場合の時「並び替え」したいと思ったことがないとは言わせません

そんなわけで、今回はVBAでワークシートを五十音順でソートする方法をご紹介していきたいと思います(^^)/

シートを五十音順で並び替え(ソート)するサンプルコード

さて、早速今回のシートの並び替えのサンプルコードを掲載します(^^)/解説はコメントにてしております(-ω-)/

ビフォー

アフター

Sub Sample()

    Dim NWS As Worksheet
    Dim i As Long
    
    Sheets.Add Before:=Worksheets(1)’シート一覧を書き出す用のシート作成
    
    Set NWS = ActiveSheet
    Application.DisplayAlerts = False 'シートを削除時の確認メッセージを非表示設定
    Application.ScreenUpdating = False ' 画面の描写を止める
    
  With NWS
     For i = 2 To Sheets.Count 'sheet数を取得
        .Cells(i, 1).Value = Sheets(Sheets(i).Name).Name 'シート名を書き出す
        .Cells(i, 2).Value = Application.GetPhonetic(Worksheets(i).Name) 'シートのフリガナをApplication.GetPhonetic使用して書き出す
     Next i    'シートの数分処理を繰り返し
     
        .Range("A1").CurrentRegion.Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1 '昇順
     
       For i = 1 To .Cells(, 1).End(xlDown).Row
        Worksheets(.Cells(i, 1).Text).Move After:=Worksheets(i) 'シートを組み替える
       Next i
  End With

    NWS.Delete '書き出し用のシートを削除
    
    
End Sub

 

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です