FM8 成績ファイル作成4 回収とインポート
前回までで、成績ファイルを作成し配布を行いました。
今回は、各教員が成績ファイルに入力を行ったあとの処理を行います。
各教員が成績ファイルに入力を行い帳票を出力します。帳票を学年単位などで回収を行い、すべて揃ったことを確認したとします。
その後、成績ファイルを回収しFileMakerの校務支援システムにインポートします。
1.成績ファイルの回収
現在、ファイルは各教員用のフォルダに入っています。
これらのフォルダの中にあるエクセルファイルをすべてひとつのフォルダにまとめたいと思います。
「matome」フォルダを作成し、中に「remove.bat」を作ります。
remove.batの中身
cd ../
for /d %%f in (*) do (
cd ./%%f
move * ../matome
cd ../
)
これを実行することで、「matome」フォルダの中にすべてのエクセルファイルファイルが集まります。
2.エクセルファイルをcsvファイルに変換
この「matome」フォルダを前回作成した「配布ファイルへ変換.xlsm」と同じフォルダに入れます。
配布ファイルへ変換.xlsmに次のマクロを付け加えます。
Sub csvファイルに変換()
Dim DIR_PATH As String
DIR_PATH = ThisWorkbook.Path
Dim fl_name As String
fl_name = Dir(DIR_PATH & "\matome\*.xlsm")
If fl_name = "" Then
MsgBox "Excelファイルがありません。"
Exit Sub
End If
Application.ScreenUpdating = False '画面更新を停止
Application.DisplayAlerts = False '警告を出さないようにする
Do
Workbooks.Open Password:="lock" _
, Filename:=DIR_PATH & "\matome\" & fl_name
ActiveWorkbook.SaveAs Filename:= _
DIR_PATH & "\csvファイル\" & fl_name & ".csv" _
, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close
fl_name = Dir
Loop Until fl_name = ""
MsgBox "終了しました"
End Sub
このマクロは、「matome」フォルダ内の成績ファイルをひとつずつ開き、csvファイルとして「csvファイル」フォルダに保存するというものです。
前回作成した印刷マクロには「印刷するときにパスワードをlockに変更して閉じる」という機能がありました。
これにより、帳票作成後に成績の変更を防ぎます。
今回作成したcsvに変換するマクロでは、成績ファイルを開くときのパスワードは「lock」になっています。
もし、マクロが止まったとしたならば成績ファイルのパスワードが「lock」ではないということです。
つまり、帳票の出力を行っていない(成績を入力していない)可能性があるということです。
これにより成績処理の漏れをチェックすることができます。
3.csvファイルをひとつにまとめる
出来上がったcsvファイルをひとつのcsvファイルにまとめます。「csvフォルダ」の中に「csvをひとつにまとめる.bat」を作成します。
csvをひとつにまとめる.batの中身
type *.csv > ../ひとつに合体.csv
これで「ひとつに合体.csv」がフォルダの外にできます。この「ひとつに合体.csv」の中にはすべての成績がまとめて入っています。
「ひとつに合体.csv」を開き、エクセルファイルとして保存します。フィルター機能を使って余計な行を削除します。
4.FileMakerに保存
「校務支援システム」に「成績_定期考査素点」テーブルを作成します。
表形式のレイアウトを作成し、先程作成した「ひとつに合体.xlsx」をインポートして完了です。
以上で定期考査の素点の回収と保管ができました。
定期考査の素点だけでなく、学期の評価も同じ要領で行うことができます。
今回までに作成したものをまとめたzipファイルです。
次回からは出席簿の電子化を解説していきます。