Section G 観点評価 |
作成の基本方針
・手作業で各教科別観点リスト一覧表を準備する。
・国語観点評価記入表をマクロで作成する。
・他教科の観点評価記入表は、マクロで作成済教科の観点評価表をコピーし作成する。
・各生徒の観点評価は手作業でリストデータから入力する。
G-1 各教科別観点リスト一覧表作成
先ず、全教科の観点項目の一覧表を、前から2番目のシートにシート名を「各教科別観点
リスト」として作成します。先頭のシートには、「観点評価Readme」があると仮定しています。
G-3に掲げるマクロプログラムには、「先頭から○○番目のシートの後ろにコピーしなさい」
のようにシート枚数を利用するコードが有るので、シート枚数の指示に従って下さい。
サンプルでは、図G-1に示す一覧表を想定しています。この例の観点評価項目数は国語5、
社会〜英語4、選択教科3です。項目数と教科の並び順が異なる場合には、後述のマクロ
プログラムにおいて整合性がとれる様注意しましょう。
図 G-1 各教科別観点リスト一覧表
G-2 国語観点評価表作成プログラム
このマクロでは、先ずセクションFの「連結5段階.xls」ブックの国語成績シートから名簿
をコピーした後、観点評価欄を追加し、表の上段に上記リスト一覧から国語の評価項目
を挿入しています。
「国語観点評価表作成main」マクロプログラム
1 Sub 国語観点評価表作成main()
2 Call 国語観点評価名簿欄コピー
3 Call 国語観点評価欄追加
4 End Sub
「国語観点評価名簿欄コピー」マクロプログラム
1 Sub 国語観点評価名簿欄コピー()
2 Dim mySht As Worksheet
3 Sheets("国語観点評価").Select
4 '2:1000行までの削除〜既存の名簿削除
5 Rows("2:1000").Select
6 Selection.Delete shift:=xlUp
7 '
8 '連結5段階評価の国語成績シートから名簿の読込
9 Workbooks.Open Filename:=ThisWorkbook.Path
& "\連結5段階評価.xls"
10 Sheets("国語成績").Select
12 Application.Goto Reference:="名簿Tbl"
13 Selection.Copy
14 Workbooks("観点評価.xls").Activate
15 Sheets("国語観点評価").Select
16 Row = 4
17 col = 2
18 Cells(Row, col).Select
19 ActiveSheet.Paste
20 Selection.PasteSpecial Paste:=xlPasteColumnWidths,
Operation:=xlNone, _
21 SkipBlanks:=False, Transpose:=False
22 End Sub
「国語観点評価名簿欄コピー」マクロプログラムの解説
9行目、14行目の追加はありますが、9〜21行目は基本的にはセクションFのF-3で
解説した「連結成績表作成準備」マクロプログラムの11〜20行に同じです。
5、6行目 :これは、既存の「国語観点評価」シートがある場合、表の大きさが異なると
支障が生ずるため、一旦既存の表を削除しなさいの意味です。余裕を持って
1000行まで削除しています。
「国語観点評価欄追加」マクロプログラム
1 Sub 国語観点評価欄追加()
2 ' 文字列挿入
3 Range("E3") = "国語観点評価達成状況"
4 Range("G5") = "A"
5 Range("H5") = "B"
6 Range("I5") = "C"
7 Range("J5") = "D"
8 Range("K5") = "E"
9 Range("G5:K5").Select
10 Selection.Copy
11 Range("L5").Select
12 ActiveSheet.Paste
13 Range("Q5").Select
14 ActiveSheet.Paste
15 Range("I4") = "1学期"
16 Range("N4") = "2学期"
17 Range("S4") = "3学期"
18 '文字列センタリング
19 Range("I4,N4,S4,G5:U5").Select
20 With Selection
21 .HorizontalAlignment = xlCenter
22 .VerticalAlignment = xlCenter
23 .WrapText = False
24 .Orientation = 0
25 .AddIndent = False
26 .IndentLevel = 0
27 .ShrinkToFit = False
28 .ReadingOrder = xlContext
29 .MergeCells = False
30 End With
31 '罫線
32 Range("G5:U35").Select
33 Selection.Borders(xlDiagonalDown).LineStyle
= xlNone
34 Selection.Borders(xlDiagonalUp).LineStyle
= xlNone
35 With Selection.Borders(xlEdgeLeft)
36 .LineStyle = xlContinuous
37 .Weight = xlThin
38 .ColorIndex = xlAutomatic
39 End With
40 With Selection.Borders(xlEdgeTop)
41 .LineStyle = xlContinuous
42 .Weight = xlThin
43 .ColorIndex = xlAutomatic
44 End With
45 With Selection.Borders(xlEdgeBottom)
46 .LineStyle = xlContinuous
47 .Weight = xlThin
48 .ColorIndex = xlAutomatic
49 End With
50 With Selection.Borders(xlEdgeRight)
51 .LineStyle = xlContinuous
52 .Weight = xlThin
53 .ColorIndex = xlAutomatic
54 End With
55 With Selection.Borders(xlInsideVertical)
56 .LineStyle = xlContinuous
57 .Weight = xlThin
58 .ColorIndex = xlAutomatic
59 End With
60 With Selection.Borders(xlInsideHorizontal)
61 .LineStyle = xlContinuous
62 .Weight = xlThin
63 .ColorIndex = xlAutomatic
64 End With
65 '罫線 学期欄
66 Range("G4:K4,L4:P4,Q4:U4").Select
67 Selection.Borders(xlDiagonalDown).LineStyle
= xlNone
68 Selection.Borders(xlDiagonalUp).LineStyle
= xlNone
69 With Selection.Borders(xlEdgeLeft)
70 .LineStyle = xlContinuous
71 .Weight = xlThin
72 .ColorIndex = xlAutomatic
73 End With
74 With Selection.Borders(xlEdgeTop)
75 .LineStyle = xlContinuous
76 .Weight = xlThin
77 .ColorIndex = xlAutomatic
78 End With
79 With Selection.Borders(xlEdgeBottom)
80 .LineStyle = xlContinuous
81 .Weight = xlThin
82 .ColorIndex = xlAutomatic
83 End With
84 With Selection.Borders(xlEdgeRight)
85 .LineStyle = xlContinuous
86 .Weight = xlThin
87 .ColorIndex = xlAutomatic
88 End With
89 Selection.Borders(xlInsideVertical).LineStyle
= xlNone
90 '
91 Range("G4:U5").Select
92 Selection.Interior.ColorIndex = 41
93 '列幅設定
94 Columns("G:U").Select
95 Selection.ColumnWidth = 2
96 '評価説明入力行の挿入
97 Rows("2").Select
98 For i = 1 To 5 '5行挿入
99 Selection.Insert shift:=xlDown
100 Next
101 '観点評価項目転記
102 Sheets("各教科別観点リスト").Select
103 Range("C3:C7").Select
104 Selection.Copy
105 Sheets("国語観点評価").Select
106 Range("D2").Select
107 ActiveSheet.Paste
108 '余分な罫線の削除
109 Range("D2:D6").Select
110 Application.CutCopyMode = False
111 Selection.Borders(xlEdgeLeft).LineStyle
= xlNone
112 Selection.Borders(xlEdgeTop).LineStyle
= xlNone
113 Selection.Borders(xlEdgeBottom).LineStyle
= xlNone
114 Selection.Borders(xlEdgeRight).LineStyle
= xlNone
115 End Sub
「国語観点評価欄追加」マクロプログラムの解説
長いマクロですが、単純な「マクロの記録」を順に繋げただけです。
2〜17行目 :見出し文字列A〜E、1〜3学期の表示で、一部コピーを利用しています。
18〜30行目 :上記文字列の中央寄せ(センタリング)です。23〜29行目は削除可です。
31〜64行目 :A〜E欄の縦、横罫線の設定です。セル毎に罫線で仕切られます。
65〜89行目 :学期の見出しについて罫線設定、ここではセル5個分をまとめて外枠罫線
として設定しています。
91,92行目 :見出し行を青色で塗りつぶします。
94,95行目 :列幅の設定で、単位は半角文字列2つ分の幅の意味です。
97〜100行目 :表の上段に観点評価項目を記入するため、5行新たに挿入します。
101〜114行目:国語の観点評価項目を先の「各教科別観点リスト一覧表」からコピーして
「国語観点評価」シートのD2セルに貼り付けています。この際、罫線も含めて
コピーされるので、108〜114行目でそれを削除しています。
以上で国語観点評価記入表を準備することができましたが、A〜Eの観点評価(○,△,・, )
については、手作業でセクションFのF-1で説明したリスト入力ができるよう設定しましょう。
この設定のマクロ化も可能ですが、次第にプログラムが複雑になるので省略しました。
G-3 各教科観点評価テーブル準備プログラム
このマクロでは、先ず国語観点評価表をコピーして、それを基に社会の観点評価表を作成
します。9教科の内、国語評価項目数は5つ、他の科目は4つなので、E欄を削除しています。
社会の観点評価表が完成した後は、それを基に科目名と評価項目の内容を差し替え、For〜
Next文で残り7科目分の観点評価表を準備します。
選択教科は年1回の評価となるので、欄構成が9教科とは異なります。このマクロでは、社会
の観点評価表を基に選択教科1の表を作り、その後選択教科2〜4をFor〜Next文の中で作成
する構造としています。
「各教科観点評価テーブル準備」マクロプログラム
1 Sub 各教科観点評価テーブル準備()
2 Dim subject As String, choice_item As String, ic As Integer, i As Integer
3 '社会観点評価
4 Sheets("国語観点評価").Activate
5 Sheets("国語観点評価").Copy
After:=Sheets(3) ' (3):前から3番目のシートの意味
6 Sheets("国語観点評価 (2)").Select
7 Sheets("国語観点評価 (2)").Name
= "社会観点評価"
8 '複数セル内容のクリア
9 Range("E8,D2:D6").Select
10 Selection.ClearContents
11 '複数列の削除(評価項目E欄)
12 Range("K:K,P:P,U:U").Select
13 Selection.Delete shift:=xlToLeft
14 '観点評価項目転記
15 Sheets("各教科別観点リスト").Select
16 Range("C8:C11").Select
17 Selection.Copy
18 Sheets("社会観点評価").Select
19 Range("D2").Select
20 ActiveSheet.Paste
21 '余分な罫線の削除
22 Range("D2:D5").Select
23 Application.CutCopyMode = False
24 Selection.Borders(xlEdgeLeft).LineStyle
= xlNone
25 Selection.Borders(xlEdgeTop).LineStyle
= xlNone
26 Selection.Borders(xlEdgeBottom).LineStyle
= xlNone
27 Selection.Borders(xlEdgeRight).LineStyle
= xlNone
28 Range("E8") = "社会観点評価達成状況"
29 '見出し右端罫線記入
30 Range("O9:R9").Select
31 With Selection.Borders(xlEdgeRight)
32 .LineStyle = xlContinuous
33 .Weight = xlThin
35 .ColorIndex = xlAutomatic
36 End With
37 '数学〜英語の7科目
38 ic = 4 'コピーする際のシート位置制御
39 For i = 1 To 7
40 If i = 1 Then
41 subject = "数学"
42 choice_item = "C12:C15" '数学観点評価項目のセル位置
43 ElseIf i = 2 Then
44 subject = "理科"
45 choice_item = "C16:C19"
46 ElseIf i = 3 Then
47 subject = "音楽"
48 choice_item = "C20:C23"
49 ElseIf i = 4 Then
50 subject = "美術"
51 choice_item = "C24:C27"
52 ElseIf i = 5 Then
53 subject = "保健体育"
54 choice_item = "C28:C31"
55 ElseIf i = 6 Then
56 subject = "技術家庭"
57 choice_item = "C32:C35"
58 Else ' i = 7
59 subject = "英語"
60 choice_item = "C36:C39"
61 End If
62 '
63 Sheets("社会観点評価").Select
64 Sheets("社会観点評価").Copy
After:=Sheets(ic)
65 Sheets("社会観点評価 (2)").Select
66 Sheets("社会観点評価 (2)").Name
= subject & "観点評価"
67 '観点評価項目転記
68 Sheets("各教科別観点リスト").Select
69 Range(choice_item).Select
70 Selection.Copy
71 Sheets(subject & "観点評価").Select
72 Range("D2").Select
73 ActiveSheet.Paste
74 '余分な罫線の削除
75 Range("D2:D5").Select
76 Application.CutCopyMode = False
77 Selection.Borders(xlEdgeLeft).LineStyle
= xlNone
78 Selection.Borders(xlEdgeTop).LineStyle
= xlNone
79 Selection.Borders(xlEdgeBottom).LineStyle
= xlNone
80 Selection.Borders(xlEdgeRight).LineStyle
= xlNone
81 Range("E8") = subject
& "観点評価達成状況"
82 ic = ic + 1
83 Next
84 '選択教科1
85 Sheets("社会観点評価").Select
86 Sheets("社会観点評価").Copy
After:=Sheets(11)
87 Sheets("社会観点評価 (2)").Select
88 Sheets("社会観点評価 (2)").Name
= "選択教科1観点評価"
89 'セル内容のクリア
90 Range("E8,D2:D5").Select
91 Selection.ClearContents
92 '複数列の削除(評価項目D欄)
93 Range("J:R").Select
94 Selection.Delete shift:=xlToLeft
95 'セル内容のクリア
96 Range("I9").Select
97 Selection.ClearContents
98 Range("H9") = "評価"
99 '文字列センタリング
100 Range("H9").Select
101 With Selection
102 .HorizontalAlignment = xlCenter
103 .VerticalAlignment = xlCenter
104 End With
105 '観点評価項目転記
106 Sheets("各教科別観点リスト").Select
107 Range("C40:C42").Select
108 Selection.Copy
109 Sheets("選択教科1観点評価").Select
110 Range("B2").Select
111 ActiveSheet.Paste
112 '余分な罫線の削除
113 Range("B2:B4").Select
114 Application.CutCopyMode = False
115 Selection.Borders(xlEdgeLeft).LineStyle
= xlNone
116 Selection.Borders(xlEdgeTop).LineStyle
= xlNone
117 Selection.Borders(xlEdgeBottom).LineStyle
= xlNone
118 Selection.Borders(xlEdgeRight).LineStyle
= xlNone
119 Range("E8") = "選択教科1観点評価達成状況"
120 '見出し右端罫線表示
121 Range("G9:I9").Select
122 With Selection.Borders(xlEdgeRight)
123 .LineStyle = xlContinuous
124 .Weight = xlThin
125 .ColorIndex = xlAutomatic
126 End With
127 ic = 12
128 For i = 1 To 3
129 If i = 1 Then
130 subject = "選択教科2"
131 ElseIf i = 2 Then
132 subject = "選択教科3"
133 Else ' i=3
134 subject = "選択教科4"
135 End If
136 Sheets("選択教科1観点評価").Select
137 Sheets("選択教科1観点評価").Copy
After:=Sheets(ic)
138 Sheets("選択教科1観点評価
(2)").Select
139 Sheets("選択教科1観点評価
(2)").Name = subject & "観点評価"
140 Range("E8") = subject
& "観点評価達成状況"
141 ic = ic + 1
142 Next
143 End Sub
「各教科観点評価テーブル準備」マクロプログラムの解説
5行目 :前から3番目のシートの後に「国語観点評価」シートをコピーしなさい。
6行目 :上記でコピーされた直後のシート名は、「国語観点評価(2)」となっています。
9,10行目 :表の上段、表のタイトル記入セル(E8)と評価項目記入セル(D2:D6)を選択し、
内容を削除。
15〜17行目 :社会の評価項目4つ(C8:C11)をコピーすると、各教科別観点リスト一覧表の
仕切り罫線も共にコピーされます。21〜27行目はその罫線の消去です。
38行目 :先頭からのシート枚数を変数icで制御し、64行目でic番目のシートの後ろに
「社会観点評価」シートがコピーされます。82行目でicの値が1増えて、Nextで
39行目のForに戻り、再び64行目のicに反映されます。
40〜61行 :文字変数subjectに科目名を文字変数choice_itemに該当科目の観点評価
項目のセル位置を代入します。代入される科目名などは、ループ変数
i に
応じて変わります。
84〜126行目 :選択教科1の観点評価表を準備しています。社会の観点評価表をコピーして、
不要な欄を削除しています。
127〜143行目:選択教科1の表が作成済となり、For〜Next文で残り3科目を作成します。
G-4 観点評価サンプルシート
以下にサンプルシートを掲げます。ただし、「各教科別観点リスト」シートについては、図G-1を
参照して下さい。
「観点評価Readme」シート
「国語観点評価」シート
「社会観点評価」シート
「選択教科1観点評価」シート
索引
ページの先頭へ戻る
目次へ戻る