Excel・CSV VBA

【エクセルVBA】シートを任意の順番にソートするVBA

投稿日:

あのー、Excelのシートをソートする方法ってありますか。

エクセルの標準機能では用意されていませんね。
そうですよねー。シートが10個以上あるんですけど並び変えないといけないんです。めんどうだなー。
では、マクロで解決しましょう!

Excelのシートをソートするマクロをご紹介します。
任意の順番にソート処理可能です。

マクロ機能が有効なExcelブック「.xlsm」を作成

Excelブック「.xlsm」の作成方法が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】マクロ機能が有効なExcelブック「.xlsm」の作り方

コードを標準モジュールに貼り付け

標準モジュールの開き方が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】標準モジュールの開き方

標準モジュールを開いて、下記のコードを貼り付けて下さい。

コード

シート名取得

シートソート

 

Microsoft Scripting Runtimeを有効にする

Microsoft Scripting Runtimeを有効にする方法が不明な場合は、下記の記事を参考にして下さい。
【エクセルVBA】Microsoft Scripting Runtimeを有効にする方法

マクロを実行

上記で作成したマクロファイル(ここでは「シートソート.xlsm」とファイル名を設定。)と、
マクロ実行テスト用のダミーデータとして、エクセルファイルを準備します。

 

※マクロ実行テスト用のダミーデータとして作成した、複数シートを含むエクセルファイル。
シート名、「Sheet1、Sheet2、Sheet3」を含んでいます。

 

マクロファイルを開いて、「コンテンツの有効化」をクリックします。
※設定により、「コンテンツの有効化」は表示されない(クリック不要の)場合もあります。

 

「開発」タブをクリックします。

 

「マクロ」をクリックします。

 

マクロ「シート名取得」を選択、「実行」をクリックします。

 

「ファイルを開く」ダイアログが表示されるので、
シートをソートしたい対象エクセルファイルを選択して、「開く」をクリックします。

 

シート「シート名一覧」が作成されます。

 

B2セルから下のセルに、希望のシート並び変え順通りに、シート名を入力して、
F5セルの「エラー」から「OK」に変更される様にします。

 

マクロ「シートソート」を選択、「実行」をクリックします。

 

「ファイルを開く」ダイアログが表示されるので、
シートをソートしたい対象エクセルファイルを選択して、「開く」をクリックします。

 

シートの並び順が希望の順番にソートされます。

完了です。

エラーについて

・マクロ「シート名取得」を実行せずにマクロ「シートソート」を実行すると、
シート「シート名一覧」がない為、マクロはエラーになります。
先にマクロ「シート名取得」を実行して下さい。

・シート「シート名一覧」のF5セルが「エラー」の場合、マクロはエラーになります。
A列・B列に重複がないか、B列に漏れがないかをチェックしている為、
先にエラー内容を解消して下さい。

参考サイト

Excel作業をVBAで効率化
VBAでシートを任意の順番で並べ替える | Excel作業をVBAで効率化

スキルハンター007
【エクセルVBA】エクセルのシート名を一括置換するVBA

【エクセルVBA】エクセルのシート名を一括取得するVBA

スポンサーリンク

pr001




pr001




-Excel・CSV, VBA

スポンサーリンク

スポンサーリンク

PR005


ハント

VBA、GoogleAppsScript、思考法など、
業務効率化に繋がる情報を投稿中です。

普段は某IT企業に勤務しています。
Twitter @skillhunter007

好きなもの:アイアンマン、

ほしいもの:フライデー
(アイアンマンに登場するAI)、
盗賊の極意(スキルハンター)、