マクロを編集するExcel生徒名簿
前々回
マクロの作成例でマクロを作成した生徒名簿です。
誕生日でソートし、印刷するマクロです。
これを、氏名でソートし印刷するようにマクロを編集します。
リボンの「開発」 − 「コードの表示」をクリックします。
VBE画面が開きます。
プロジェクトウィンドウの標準モジュール内Module1をクリックします。
すると、コード ウィンドウにマクロのプログラムが表示されます。
プログラムの説明
プログラムの中身です。先頭の数字は説明用に付けたもので、実際にはありません。
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.