マクロを編集するExcel生徒名簿

前々回マクロの作成例でマクロを作成した生徒名簿です。
誕生日でソートし、印刷するマクロです。
これを、氏名でソートし印刷するようにマクロを編集します。

リボンの「開発」 − 「コードの表示」をクリックします。
Excel生徒名簿

VBE画面が開きます。
VBE画面

プロジェクトウィンドウの標準モジュール内Module1をクリックします。
すると、コード ウィンドウにマクロのプログラムが表示されます。
プログラムが表示されたVBE画面

プログラムの説明

プログラムの中身です。先頭の数字は説明用に付けたもので、実際にはありません。

1:Sub 生徒名簿_誕生日順()
2:'
3:' 生徒名簿_誕生日順 Macro
4:'
5:'
6:    Range("B6:D12").Select
7:    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
8:    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D6:D12") _
         , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
9:    With ActiveWorkbook.Worksheets("Sheet1").Sort
10:        .SetRange Range("B6:D12")
11:        .Header = xlGuess
12:        .MatchCase = False
13:        .Orientation = xlTopToBottom
14:        .SortMethod = xlPinYin
15:        .Apply
16:    End With
17:    Range("B3:D12").Select
18:    ActiveSheet.PageSetup.PrintArea = "$B$3:$D$12"
19:    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
          IgnorePrintAreas:=False
20:End Sub

・1行目の20行目の、Sub 〜 End Sub が一つのマクロになります。
・2行目〜5行目の先頭に ’ が付く行はコメント文になります。コメント文は緑色で表示されます。
・6行目 B6:D12の範囲を選択します
・7行目 並べ替えの条件をクリアします。
・8行目〜16行目 並べ替え条件を設定し、並べ替えを実行します。
・17行目 B3:D12の範囲を選択します
・18行目 印刷範囲を設定します。
・19行目 印刷します。

プログラムの修正

並べ替え列の誕生日を指定しているのは、8行目の SortFields.Add Key:=Range("D6:D12") の部分です。
ここのD6:D12が誕生日のデータ範囲なので、氏名の範囲C6:C12に変更します。
8行目は下記になります。

8:    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C6:C12") _
         , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

リボンの「開発」-「マクロ」で実行します。
下画像のように氏名で並べ替えし、印刷できるようになりました。
氏名でソートした生徒名簿








Copyright (C) excel.usefulhp.com All rights reserved.