この記事では、ワークシート名に応じて、ワークブック内のワークシートを昇順または降順で並べ替える方法について詳しく説明しました。

添付のワークブックには、次の2つのモジュールがあります。-Module1には、「マクロ」シートの「送信」ボタンに割り当てられたマクロ「SortWorksheets」が含まれています。

このマクロは、「マクロ」という名前のメインシートである最初のワークシートを除くすべてのワークシートを並べ替えます。

ユーザーが「送信」ボタンをクリックすると、「マクロ」シートの後のすべてのシートが、コンボボックスでユーザーが選択した昇順または降順で並べ替えられます。

ArrowSortingOrder

Module2には、「AscendingSortOfWorksheets」と「DecendingSortOfWorksheets」の2つのマクロが含まれています。 「AscendingSortOfWorksheets」マクロを実行すると、ブックに存在するすべてのワークシートが昇順で並べ替えられます。 「DecendingSortOfWorksheets」マクロを実行すると、ブックに存在するすべてのワークシートが降順で並べ替えられます。

ロジックの説明

バブルソートアルゴリズムは、ワークブック内のワークシートをソートするために使用されます。

バブルソートアルゴリズムは、配列内の各アイテムを配列内の他のアイテムと比較し、昇順または降順のどちらでソートするかに応じてそれらを交換します。各ステップで、最小値または最大値を配列の先頭にバブルします。すべてのアイテムがソートされるまで、アルゴリズムが繰り返されます。

この記事では、ワークブック内のワークシートを名前で並べ替えることを目標としています。私たちが使用しているワークブックは、Financial Dashboard、Human Resources、SalesDashboardなどの名前のさまざまなワークシートで構成されています。

ArrowRawData

この目標を達成するために、ワークシートをソートするためにバブルソートアルゴリズムを使用しました。

コードの説明

SortWorksheetsマクロ

このマクロは、ユーザーが送信ボタンをクリックしたときに実行されます。このマクロは、ブック内の最初のワークシートを除く、ブック内のすべてのワークシートを名前で並べ替えます。コンボボックスでユーザーが選択した値に応じて、ワークシートが昇順または降順で並べ替えられます。

コンボボックスを追加するには、以下の手順に従ってください:-。 [開発者]タブに移動> [挿入]をクリック>フォームコントロールの下のコンボボックスアイコンをクリック

ArrowInsertingCombobox

。コンボボックスを右クリックし、フォーマットコントロールをクリックします。

ArrowFormattingControl

。 [コントロール]タブに移動し、アイテムを割り当てて、コンボボックスをセルXFC1にリンクします。

ArrowCellLink

ComboBoxValue = Range( “XFC1″)。Value「マクロ」ワークシートのコンボボックスはセルXFC1にリンクされています。したがって、セルXFC1から値を取得するには、ComboBoxValue変数が使用されます。

For i = 2 To SCount – 1 FORループは変数iで始まり、ワークブックの最初のワークシートを並べ替えから除外するため、値は2から始まります。

If ComboBoxValue = 1次に、IF条件を使用して、昇順または降順のどちらでソートするかを確認します。 ComboBoxValue値が1の場合は昇順で並べ替え、それ以外の場合は降順で並べ替えます。

ワークシートを昇順で並べ替える

ArrowAscendingOrder

ワークシートは降順でソートされます

ArrowDescendingOrder

AscendingSortOfWorksheetsおよびDecendingSortOfWorksheets

AscendingSortOfWorksheetsおよびDecendingSortOfWorksheetsマクロは、Alt + F8ショートカットキーを押すか、[開発者]タブに移動> [マクロ]をクリック>マクロを選択して[実行]をクリックすることで実行できます。ブック内にあるすべてのワークシートを並べ替えます。これらのマクロは、他のブックでも実行できます。

AscendingSortOfWorksheetsマクロの実行後にソートされたワークシート

ArrowAscendingCompleteSort

ワークシートを昇順でソートDecendingSortOfWorksheetsマクロ

ArrowDescendingCompleteSort

コードについては以下に従ってください

Sub AscendingSortOfWorksheets()

'Sort worksheets in a workbook in ascending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name < Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Sub DecendingSortOfWorksheets()

'Sort worksheets in a workbook in descending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name > Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください