学級編成支援プログラム　更新履歴
ver 1.1    2018.7.10
・「編成結果を修正」をクリックした後、データ修正のmsgboxが出るようにした。
・半自動学級編成機能を追加。学力段階を自動で記入しないプロシージャを追加。

ver 1.2   2018.7.12
・新学級名簿表示で、起動後一度も名簿を表示しない状態で印刷とプレビューをするとエラーになるバグを改善。
　新学級名簿の表示プロシージャにendrowがセットされているかチェックするルーチンを追加。
　新学級名簿の印刷範囲設定プロシージャにon error resume next を挿入。
  初期設定の学級名表示、説明文の各入力項目の「予めクラスをする児童」の説明を変更。
　児童データシートの、「予めクラスを指定する児童」の入力文字表示セルを変更。

ver 1.3  2018.7.31
・自動学級編成で、要配慮児童（重い）と要配慮児童（軽い）の合計の人数をチェックし、重いと軽いを合わせて各クラスが均等に配置されるようにした。
　具体的には、要配慮自動（軽い）のプロシージャに、重いと軽いの合計をチェックするルーチンを追加。また、sum_classh作成プロシージャ改変し集計できる項目を１〜２に増加。
・自動編成時、落ち着きのない子と指導性の項目が一度調整されてもその後のルーチンで変えられてしまうバグを修正
　具体的には、協調性プロシージャで移動候補児童を探すときに、指導性と落ち着きのない子をチェックする行が抜けていたのを修正

ver 1.4  2018.8.13
・同じクラスにしない児童の調整がうまくいかないトラブルを修正。
　具体的には異クラス調整プロシージャ実行を作り直した。
・同じクラスにする児童としない児童の名前の自動記入について、通し番号をコピーで貼り付けると記入されない点を
　修正。
・同じクラスにする、しない、固定学級の結果を確認するプロシージャを追加。及びエラー表示の仕組みを改変。

ver 1.5  2018.8.14
・新学級シートで並べ替え機能を追加。
・新学級表示プロシージャを若干改変。
・モジュール5に児童情報並べ替え2プロシージャを追加。
・userform2に列幅指定用オプションボタンを追加。それに伴い列幅自動調整なしコマンドボタン削除
・userform2にスピンボタン追加
・学力段階が、調整済みと表示されるのに正しく調整されないバグを修正。指導性、落ち着きのない子の調整
　プロシージャに学力段階を外して児童を移動させる仕組みが組み込まれていたのが原因。両プロシージャの後に
　学力段階と平均点調整プロシージャを移動させたことで解決。
・同じクラスにする、しない、固定学級の結果を確認するプロシージャを改変。及びエラー表示の仕組みを改変。
・固定クラス、同クラス、異クラス調整プロシージャで、移動した児童のみ移動禁止にしていたため後のプロシージャで
　移動させられてしまう場合があるバグを訂正。各プロシージャに関係する全児童を移動禁止にするルーチンを追加。

ver 1.6 2018.8.20
・異クラス調整機能で、正しく調整されない不具合を修正。
・sumicheckプロシージャを追加。異クラス調整mainで一度処理がすんだ児童及びその児童のtigauh()に登録されている
　児童のsumiflag_noを1にするとともに、以降の児童の処理をするときに移動できるかsumiflagをチェックする機能を
　持つ。
・異クラス調整main,sumicheckプロシージャを中心に各所を修正
・異クラス調整機能で、現在児童・対象児童ともに移動禁止だった場合に移動禁止児童を動かす機能を追加。
　具体的にはnomovechangeプロシージャを追加。

ver 1.7 2018.8.22
・nomovechangeプロシージャを改変。機能強化。
・成績順配置手動記入プロシージャを廃止し、成績順配置プロシージャに吸収

ver 1.9 2018.9.9
・nomovechangeプロシージャを大幅改変。移動元児童がsumiflag=1でも移動してしまうバグを修正
・特別支援調整プロシージャを、要支援（重）と要支援（軽）の前に移動。これにより特別支援の調整精度が上がり
　その割に要支援の精度は維持される。

ver 2.0  2018.9.29
・児童情報シートに、行削除と行挿入ボタンを追加。

ver 2.1  2018.10.4
・全児童消去を行うと教科平均点書き込み用の関数まで消去されてしまうので、worksheetfunction関数を使って計算
　するようにした。

ver 2.2  2018.10,9
・行番号と通し番号が違っている場合に同じクラスにする児童が正常に調整されないバグを修正
　具体的には児童選択同クラスプロシージャを改変。
・通し番号自動記入を行う前に警告が出るようuserform4を変更。
・仮クラス人数チェック、元クラス人数チェックを、すべての組み分け処理が終了した時点で行うことに変更。

ver 2.3  2018.12.22
・行削除、行挿入を実行した際、同じクラスにする子、同じクラスにしない子、通し番号を自動的に修正するようにした。
・マクロ開始、マクロ終了プロシージャを追加し、行削除・行挿入プロシージャで使用。　

ver2.4  2019.1.9
・児童名を姓＋名と姓名の両方の入力方法ができるように改善。
　具体的には、userform4に選択のオプションボタンを設定。また成績順配置プロシージャの最後で書き戻し後に児童名
　の項目に姓＋名を自動記入するコマンドを、姓＋名のモードを選んでいる場合のみ実行するようにした。
　最大児童数セットプロシージャを、児童名のモードに合わせてカウント方法を変更。					
・行挿入時に、姓＋名が自動記入されないバグを修正

ver2.5  2019.1.14
・児童名を姓＋名と姓名の切り替えをuserformではなく初期設定シートで行うようにした。具体的には、userform4のオ
　プションボタン11,12の削除、コマンドボタンの削除、システムシートのオプションボタン保存場所の変更、最大児童
　数セットプロシージャ改変、行挿入プロシージャ改変、成績順プロシージャの最後の後処理ルーチンの改変、初期設定
　シートにオプションボタン、コマンドボタン追加である。
・初期設定シートの説明文をわかりやすくした。
・集計表に印刷機能を追加。具体的にはuserform5を追加し、集計表モジュールも各所を変更。
・集計表の地区別表が横長だったのを縦に伸びるように変更。
・ファイル出力プロシージャを改変。r1c1形式にしなくてもファイル出力ができるようにした。
・集計表、学級名簿にシート出力機能を追加。具体的には、userform4と5に出力ボタンを追加。学級名簿と集計表にシー
　トプロシージャを追加。
・地区名が初期設定シートに１つも設定されていない場合、集計表示しないようにした。
　具体的には、集計表示プロシージャでtotal_tikuが０なら集計しないようにした。

ver2.6  2019.1.14
・新学級表示、集計表のシートで、用紙サイズを選択し「設定」をクリックすると、即座に再描画するよう変更。
　具体的には、userform2,userform5に設定ボタンを作り、それで再描画するようにした。また、新学級用紙サイズセッ
　ト、新学級高さ幅セット集計表用紙サイズセット、集計表高さ幅セットプロシージャで、オプションボタンの値で用紙
　サイズを判定していたのをシステムシートに保存された値で判定するようにした。userform2とuserform4の項目値セー
　ブ、ロードプロシージャ、も改変。
・行削除、行挿入、で、同じクラスにしない児童の既登録番号を修正する範囲、並べ替えプロシージャの並べ替えの範囲
　を、実際の児童数(endrow_student)より多くとるための付加行数addを設定した。シートを移動しないまま行挿入を繰
　り返すと見かけの児童数が増え、最下部の児童に上記の操作の範囲が及ばなくなってしまうのを防ぐため。
・行挿入を、通し番号がない行では実行しないように変更。行削除は行うが、通し番号がないと一緒にしない子、する子
　の修正や通し番号の修正は行わない。
・児童選択、児童選択２プロシージャにバグ。condition_move は要素数が１２まであるが、児童選択では１０条件まで
　しか考慮していなかったことが判明。修正。また、condition_moveも要素数を１６まで増やし、考慮可能条件を１５ま
　でに拡張。
・一覧表、新学級名簿、個別カードの印刷で、色をつけたいという要望があるので、各印刷設定プロシージャで白黒印刷
　の設定を削除。
・成績順配置プロシージャの最後に作業用シートをクリアする行を追加。機密保持のため。
・教科平均点が、１〜５点のような点数となった場合エラーとなるので、学力段階記入プロシージャ、及び成績順配置プ
　シージャを改変し、エラーを回避し組み分け不能のメッセージを出すようにした。
・半自動学級編成時に、学力段階の記入チェックを行うようにした。成績順配置プロシージャを改変。
　学力段階初期チェック及び記入プロシージャを削除し、学力段階初期チェックプロシージャを追加
・三段階児童平均点セットプロシージャを改変し、学力三段階児童が０人でもエラーとならないようにした。
・配列初期設定プロシージャの、redim h_heikin(endrow_student)を（total_student）に変更

ver3.0   2019.2.10
・自動学級編成の基本プロセスを変更。まず元クラス単位でクラス分けを行い、その結果を合わせて全体でクラス分けを
  再度行う方式にする。
・具体的には、成績順配置プロシージャを改変。クラス児童数及び児童データセットプロシージャ、仮クラス変換プロシ
　ージャを新設。
・元クラス人数調整プロシージャに欠陥。最初から仮クラス内の元クラスの人数に異常が無い場合、仮クラス間の人数に
　異常があっても修正ルーチンに入らずに先に進んでしまい、プロシージャ内の最後のチェックルーチンで引っかかって
  異常と判定されてしまう。仮クラス人数チェックプロシージャを仮クラス人数チェック指定と改名し新たに仮クラス人
　数チェックプロシージャを新設。これを元クラス人数調整プロシージャ内で使うことで解決。また、成績順配置プロシ
　ージャも同プロシージャを使うように一部改変。
・新学級名簿表示シートに入ったときに、表示プロシージャを呼び出して以前表示していたクラスの表を再表示するよう
　改変。実際の学級編成作業時には児童情報シートを操作し直後に結果を見るために新学級名簿シートに入ることが多い
　ため。

ver3.1   2019.2.18
・学力段階別人数調整プロシージャを改変し、何度調整を繰り返すかをlooplimit,looplimit_allで一括設定できるよう
  にした。実験によればlooplimitは当初100回の設定だったが、１回と結果は変わらなかった。

ver3.2   2019.3.2
・permulationプロシージャの欠陥と思われるバグを修正。実行を繰り返すとhenkanh()の要素数がどんどん増えてしまう
　のを訂正。
・自動組み分け１回目と２回目以降の結果が異なるバグを修正。実行１回目にhenkanh()の乱数結果の最初の組が抜けて
　しまうバグがpermulationプロシージャにあり、その修正のために仮クラス変換事前準備プロシージャにReDim　
　henkanh(0, 0) を追加。
・自動組み分けと半自動組み分けの結果が異なるバグを修正。学力段階初期チェックプロシージャにlevel()の内容をセ
　ットする機能を追加。

ver 3.3   2019.3.3
・行挿入、行削除を行うと、通し番号及び一緒のクラスにする子、しない子の番号が自動的に変更されるようになってい
　たが、わかりにくいので変更しないようにした。行削除の、削除された子の通し番号が他児童の一緒にする子・しない
　子の欄に記入されていた場合自動的に削除する機能は残した。
・通し番号順以外に順番で児童情報シートが並んでいるときに自動組み分けをすると正常動作しないバグを訂正。
　motobango_noを新設しdataを１度通し番号順に並び替えてから処理するよう改変。
・auto_openプロシージャ内のコマンドを一部初期値設定プロシージャに移動。初期設定シートを変更したとき、
  sum_classh()等に変更が反映されないため。

ver 3.4   2019.3.25
・１回目組み分け・２回目組み分け・最終組み分けと三段階で組み分けをする。１回目で仮１組にするクラスを順番に
　変更し最良の結果の組み合わせを選ぶ。２回目でhenkanh()の最初の元クラス分の回数を組み分けし最良の結果を選ぶ。
　最終ではその最良の結果を基にhenkanh()の最後まで組み分けをする。

ver 3.6   2019.3.29
・新学級シートで、元学級の名簿も表示できるように改良。
・具体的には、userform2及び新学級名簿表示プロシージャ、児童情報並べ替え2プロシージャを改変。
・最終組み分けの全体組み分けの中の１回目の学力段階別調整を、mode=1（要配慮、指導性等の条件の付く子は移動
　しない）で実施するよう改変。これによりクラス単位での調整結果をより生かした組み分けとなり、組み分けの精度が
　向上。具体的には、全体組み分けプロシージャにmode判定機能を追加、自動学級編成プロシージャを改変。
・学力段階、要配慮（重軽）、指導性、落ち着きの評価を、クラス間の差が一人以内かを判定するだけでなく４人
　までの人数によって差をつけた評価をするよう改良。具体的にはsum_classhプロシージャ・学力段階チェックプロシ
　ージャ、学力段階別人数調整プロシージャを、人数に応じた値が返るよう改変。
・kariclassh()及びtop2_kariclasshを、(1 to max_student)から(1 to total_student)に変更。初期設定値セット
　プロシージャで上記配列のredimをする。これにより使用メモリを減らす効果あり。
・max_studentを、1000から5000に増加。
・クラス別平均点調整プロシージャで、指導性・おちつきの条件を抜いて候補児童を探していたので、その条件を
　追加。

ver 3.7 2019.6.
・以前作成したが不要になったコマンドボタンのコードが残っており、コンパイルするとエラーになる箇所があっ
　たのでそれを削除。再コンパイル。

ver 3.8 2019.9.13
・シート名をすべて変更。sheet1ではなくGに。それに伴い、set G as worksheetを廃止。
・児童が一人も登録されていない状態でファイルを開くとエラーになるバグを訂正。
　module1　初期設定値セットプロシージャを改変。児童が未登録または元クラス仮クラス名未登録の場合は実行
　しないようにした。
・児童情報シートを離れるときに必ず児童名のセルに姓＋名の関数が書き込まれるようにした。
・自動組み分けをする前に、元クラス名、仮クラス名、児童が一人も登録されていないかどうかのチェックをす
るようにした。
　初期設定値及び児童数チェックプロシージャを追加
・児童情報シートで最下行に新しい児童を追加して並べ替え等の機能を使うと最下行の児童が並べ替えられない
バグを修正。
　各プロシージャの先頭で最大児童数セットを実行するよう改変。
・同じクラスにする児童、しない児童の登録を５人から１人にした。枠があるとたくさん記入してしまう傾向が
　あるため。

ver 3.9  2019.10.7  長野市公開版
・学級名簿シートの列幅設定、表示項目設定に設定ボタンをつけた。
・終了、保存ボタンをつけた。

ver 4.0  2020.1.20
・上書き保存ボタンをつけた。
・説明シートをわかりやすく書き換えた。
・初期設定シートの地区名が、児童情報シートの地区欄にドロップダウンリストとして登録されないバグを訂正
　初期設定値セットプロシージャを訂正、モジュール１にリストメイクプロシージャを追加。

ver 4.1  2020.1.31
・data2→data_store top2_tensu→top_tensu_store  total_student2→totol_student_storeのように書き換えた。
・教科平均書き込みプロシージャで、各教科点数が未記入の場合平均点が事前に記入されていると空白に書き換えられないバグ
　を修正。
・自動記入プロシージャの事前準備の段階を別プロシージャ（全体事前準備）として独立。
・データチェックプロシージャをわかりやすく書き換え。訂正箇所へのカーソルジャンプをプロシージャ内で行うよう改変。
　また、訂正箇所へのジャンプ先が間違っていたバグを訂正
・身長調整機能を使うとそれまでの調整がめちゃめちゃになってしまうバグを修正
　身長段階セットプロシージャで、data()を身長順に並べ替えたのを元に戻さなかったのが原因。身長調整プロシージャ
　、自動学級編成プロシージャ、全体組み分けプロシージャも改変。
　また、未記入項目判定プロシージャを新設。
・新学級表示で、列幅手動調整にして用紙設定を様々な組み合わせで繰り返し行うとエラーになるバグを修正。
　おそらく調整を繰り返すうちに列幅が狭くなり、列あたり文字数ポイントプロシージャで返値がマイナスになってしまうため
　にエラーとなる。列あたり文字数ポイント及び列あたり文字数プロシージャの返値が１以下になったときには１を返すように
　改変。
・同じクラスにしない子、する子は１人しか指定できないようになっているが、２〜５人目も指定してしまう先生がいるので、
　児童情報シートを離れるときに２〜５人目の欄をクリアするようにした。
・児童情報シートの同じクラスにする子、しない子の２〜５人目の欄を黒く塗りつぶした。
・nomove_changeプロシージャで、移動したい子が同じクラスにする子を登録した配列onagih()に登録されていない場合、エラ
　ーになっていたのを修正。登録されていない場合にエラー終了する処理を追加。

ver 4.2    2020 2.16
・自動組み分けシーケンスを大幅変更。まず単クラスの男子を仮クラス分に分け、次に分かれた各元クラスの男子のみの仮クラ
　スを組み合わせて学年全体の男子の仮クラスを作成。最後に男子と女子を組み合わせて完成させる。様々なプロシージャを作
　り直している。
・最良組判定及び転送プロシージャで、全体組み分け一回目の結果と全体組み分け最終の結果を比較してよい方をdata_storeに
　保存するようになっていたが、シーケンスの改変により無意味となりその機能を削除。評価プロシージャも改変。
　kariclassh_store(),top_tensu_storeなどいくつかの変数を削除。

ver 4.3   2020.2.20
・評価プロシージャを改変。sum_classh()を使い各評価項目毎にdataをチェックしていたが、sum_estimate()を新設し必要な
　評価項目について一度のdataのチェックで評価できるようにした。クラス間人数差カウント○項目用プロシージャ、sum_esti
  mate作成プロシージャを新設。
・男女別組み分けから男女統合へのデータ受け渡しがうまくいっていなかったバグが判明。ver4.4で修正。

ver 4.4   2020.2.24
・男子または女子のみの元クラス×仮クラスに分かれたグループを組み合わせる時に、ver4.3では１種類の組み合わせで行って
　いたが、henkanh()を使い様々な組み合わせを試し評価して最良の組み合わせを選ぶようにした。
・これに伴い、様々なプロシージャに大きな変更を加えた。モジュール２は全体的にver4.3とはかなり異なっている。
・自動組み分け時に、各プロシージャ間の組み分け結果の受け渡しは全てdata_storeで行うようにした。それに伴いkiclassh()
   などいくつかの配列を削除した。
・初期設定シートで仮クラス名などを変更した場合、ueserform2のクラス名のコンボボックスのプルダウンメニューが仮クラス
　と違ってしまうエラーを訂正。初期設定シートを離れたときにuserform2.userforminitializeプロシージャを実行するように
　改変。
・初期設定シートで仮クラス名元クラス名を削除して学級表示をしたとき、クラス名コンボボックス内に既に値が設定されてい
　た場合、エラーとなるバグを修正。具体的にはSub SpinButton1_spindownプロシージャにコンボボックス内の値をチェックす
　る機能を追加。
・モジュール５の表示プロシージャに、児童データを転写する前に作業用シートをクリアするコマンドを追加。これをしないと
　初期設定シートの仮クラス名を、文字から数字に変えたときなど、型が違うエラーとなるのではないかと思われたため。

ver 4.4b   2020.3.1
・男子または女子のみの元クラス×仮クラスに分かれたグループを組み合わせるときに、henkanh()を使わず新しくさらに多く
　の組み合わせを記載したhenkanh2()を作成し、それに基づいてより多くの組み合わせを試すようにした。しかし、実験の結果
　henkanh()以上の回数を試してもほとんど効果がないことが分かったため、不採用。

ver 4.5    2020.3.1
・最良組判定及び転送プロシージャを改変し、modeを廃止。常にresulth()の最良組をdata_storeに転送するようにした。
　また、ループの途中に最良組判定及び転送プロシージャを挿入して途中からdata_storeの内容を変更し、変更した内容で
　さらにループを続ける手法は、実験したところ効果がほとんどないので、廃止した。
・userform1,2の「表示」を廃止。組を指定すると自動的に表示するよう改変。
　それに伴い初期設定シートのdeactiveプロシージャ,userform2のいくつかのプロシージャ,モジュール５の表示プロシージャ
　を改変。
・クラス毎に分割し自動組み分けなしで組み合わせて評価する組み分け方式の完成形。ver4.6とは、モジュール２の入れ替えで
　互換性があるものと思う。

ver 4.6		2020.3.4
・クラス別組み分けを再編成する時に、ver4.5の自動組み分けをせず組み合わせた状態で評価して最良の組み合せを選び最後に
　自動組み分けする方式から、組み合わせたその都度自動組み分けして結果を評価して最良のものを選ぶ方式に変更。
・userform2のコードを広範囲に変更。またモジュール５の表示、新学級入力チェックプロシージャを変更。機能に大きな変化
　はないが、コードがすっきりし、新学級名簿シートの表示が若干高速化。新クラス・旧クラスを切り替えたときに余計なメッ
　セージが出るのを回避。
・ver4.5の「表示」ボタン廃止に伴い新学級名簿シートに切り替えたとき名簿が自動更新されなかったバグを訂正。
・userform1の余分なscreenupdatingを削除
・新学級名簿シートと集計シートにpdf出力機能を追加。モジュール１にpdf出力プロシージャ追加
・姓・名分離入力を設定したとき児童情報シートのウィンドウ枠の固定位置も変更するようにした。ウィンドウ枠固定プロシー
　ジャを追加

ver 4.7 	2020.3.6
・起動時にリボン及び数式バーが表示されていれば隠す機能を追加。モジュール１に画面設定プロシージャ、画面復帰プロシー
　ジャを追加。auto_closeプロシージャ、バージョン判定プロシージャも追加。2007以前ではこの機能が搭載されていないので
　バイパスするようになっている。
・新学級名簿シートのメニュー（userform2)が大きいので、簡易版のメニュー（userform6)と切り替えられるようにした。
・氏名のみ名簿シートを追加。氏名と罫線の名簿を作成する機能をつけた。userform7とモジュール７を追加。モジュール１に
　もプロシージャを追加。

ver 4,8		2020.3.16
・デバッグ用に、モジュール８を追加。デバッグ用ツール集。
　これに伴い、モジュール２のresulth()の宣言がモジュール２からモジュール１に移動した。
・自動組み分けの評価プロシージャで、仮クラス間の人数の差を組み分けの評価点数にしていたが、単にクラス間の人数差だけ
　でなく、男の仮クラス間の人数差、女の仮クラス間の人数差を考慮して評価するよう変更。具体的にはsum_estimate(),sum
  _estimate_3level()の構造を変更。sum_estimate作成、sum_estimate_3level作成プロシージャも変更。評価プロシージャ
　変更、クラス間人数差詳細カウント三段階項目用、クラス間人数差詳細カウント○項目用プロシージャ作成。
・resulth()をlong型でなくdouble型に変更。それに伴いeraseh2doubleプロシージャ新設。評価プロシージャ変更。これにより
　評価の段階を増やすことが可能となり、仮クラス内の元クラス間の人数差を考慮した評価ができるようになった。
・実験の結果、自動組み分けプロシージャの全体組み分け一回目について、これを削除した方がクラス間の実際の組み分け結果
　のバランスがよいようなので（1回のみの実験だが）、これを削除し全体組み分け（最終）のみとした。
・評価の重みをかなり変えて実験してみたが、組み分け結果にはほとんど影響はないようだった。
・掲示用名簿作成機能を追加。具体的には掲示用名簿シート、及びuerform8、モジュール９を追加。
・クラスに一人も男子または女子がいない場合にエラーとなる現象を修正。クラス単位組み分け男女別・学年単位組み分け男女
　別・クラス児童数及び児童データセットの各プロシージャを変更。クラスに男子または女子がいない場合はその処理を中止す
　るようにした。

ver 4.9   	2020.3.20
・起動時に「このブックには読み取れない内容が含まれています」という表示が出るエラーを修正。ワークシートにソートをか
　ける時、ソート条件をクリアしないとこのエラーが出る。ソート7プロシージャにソート条件消去の行を入れた。
・シートクリアプロシージャは異常に遅いことが判明したので、削除し.cells.clearに置き換え。
・印刷範囲の設定にかなりの時間がかかることが判明。氏名のみ名簿、掲示用名簿で名簿表示をする度に印刷範囲の設定をして
　いたのを止め印刷･プレビュー時のみ行うこととした。
・用紙設定も時間がかかることが判明。新学級名簿と掲示用名簿で描画の度に用紙設定をしていたのを、用紙の設定ボタンをお
　した時のみ変更するように改変。速度向上。
・userform2の説明をクリックしたとき、メニューの「編成結果を修正」からジャンプしてきたときは学級編成修正の説明を表
　示し、そうでない時は入力の説明を表示するようにした。syusei_flagを追加。
・児童情報シートの項目名の並びを変更。特別支援入級児童と特技欄を移動。
・学級名簿を表示する際、大きくスクロールしていると次に新しい学級を表示したとき画面に何も表示されない状態になってし
  まうのを防止。表示プロシージャの最後に１行目１列目を表示するコマンドを追加。
・ブック開始時、ブック終了時の処理をモジュール1からthis workbook のコードに移動

ver 5.0				2020.8.12
・分類基準が担任によって異なるため適切な組み分けになりづらい欠点を補うため、元担任の組み分けを重視した組み分け方法
　を導入。5.1への中間的なバージョン。

ver 5.1				2020.9.6								
・組み分けプロセスを大幅変更。仮クラス間の調整だけでなく、仮クラス内の元クラスの男子・女子・男女計の人数についても
　仮クラス間で調整するように改変。多くのプロシージャを改変・追加している。
・特別支援、要配慮児童、要配慮児童（軽）、指導性、おちつきのない子については元クラスの調整を行うようになっている
　協調性、運動能力については従来の仮クラス間のみの調整のまま。
、
ver 5.2				2020.9.19
・３段階項目の組み分けを大幅変更。仮クラス内の元クラスの人数のバランスについても考慮するようにした。
　開発途中の暫定バージョン。組み分け結果がよかったので一応保存。

ver 5.3　　　　　　　　　　　2020.9.21
・三段階項目の組み分けを変更した完成版。これにより○項目だけでなく三段階項目もすべて仮クラス内元クラスの男子・女子
　・男女計について仮クラス間のバランスを最優先にした組み分けができるようになった。しかし、実験してみると異クラス児
　童、同クラス児童の指定が少ない場合はよく動作するが、その指定が多いと児童の移動が制限され、仮クラス間の全体のバラ
　ンスが以前のバージョンに比べてとれなくなる欠点が明らかとなった。
・児童組み分けに関するプロシージャは大幅に変更になっている。従来使っていた調整用プロシージャ各種は削除されている。

ver 5.4			  	2020.9.26
・ver5.3とコードはほとんど同じ。違いは、モジュール２の全体組み分けプロシージャの要支援児童（重）以下の引数が０から
　１に変更されたこと。これは、仮クラス内の男女計の該当児童（例えば要支援（重）に該当する児童）を調整する時に、それ
　以前の調整（仮クラス内の元クラス男子の該当人数・女子の該当人数・男女計の該当人数・仮クラス内の男子の該当人数・
　女子の該当人数の調整）を悪化させないという制限を解除する指示である。仮クラス内の男女計の調整以外の時は、引数０の
　場合と同じくそれ以前の調整の悪化は認めない。
　この変更により、異クラス・同クラスの指定が多い場合でも集計結果が悪化するのを防ぐ効果があがった。

ver 5.5				2020.11.29
・ver5.3の組み分けプロセス変更により条件の難しい組み分けを行うようになったため仮クラス間の調整と仮クラス内の調整を
　両方とも満足に行う工夫が必要になった。そこで仮クラスの組み合わせ数を増やし様々な組み合わせを試すことで最適解を
　発見できるようにした。具体的にはhenkanh()の組み合わせ数を増やした。理論上の最大値はかなり大きくなるのでそこには
　及ばないがかなり増え、また最善結果を途中で繰り入れて以後の組み分けを行う手法を再び導入することでかなり改善され、
　今までの最善組み合わせとほとんど同じ最適組み分けを、まだ完全ではないがかなり高い確率で行えるようになった。
　「全体組み分け　最良結果組み入れ２」については、試用すると３回に一回程度ここで最適結果が出ているので有効だと判定。
・同じクラスにしない児童の指定を、一クラス五人を超えて行うと入力途中で警告が出るようにした。

ver 5.6				2021.2.20
・児童情報シートの、教科の平均点が、点数を入力するとすぐ表示されるように改変。具体的には児童情報シートをアクティブ
　にすると平均点の欄に関数を書き込むようにした。
・pdf出力先がうまく指定できないバグを修正。pdf出力プロシージャのバグを直した。ついでに新学級名簿シート出力、新学級
　名簿シートpdf出力プロシージャの不要部分を削除。									
　
ver 5.7
・掲示シートで、児童名が長いと途中で切れてしまうバグを修正。均等割り付けをするとセル内縮小が無効になってしまうため
　。書式を等割り付けでなく上揃えとすることで解決。やや見栄えはよくないが仕方がない。
・メニューシートにシート保護をかけた。パスワードは設定していない。メニュー画面に何かの名簿がコピーされてしまう使い
　方が多いのでそれを防ぐため。
・ver 5.6で追加した教科平均書き込みプロシージャにバグがあり、教科に何も入力がないときにエラーになるので、counta→
 countに変更した。

ver 5.9
・児童情報シートやメニューシートに罫線が書き込まれてしまうバグを修正。明確ではないが罫線を書き込むプロシージャに
　シートを指定する機能がなかったこと、かつ新学級名簿表示、個人票表示、氏名のみ名簿表示のモジュールで操作対象
　のシートを明示していなかったことが原因と推定。各モジュールに　u1.select のように操作対象のシートの選択を明示した。
・罫線描画プロシージャを多機能な｢罫線()」のみに統一した。これは描画対象シートを指定する仕様となっている。他の罫線関
　係プロシージャは削除した。
・着色、フォントサイズプロシージャをシート指定するように書き換えた。

ver 6.0      2022.2.1
・違うクラスにする児童を多く指定すると自動組み分け中にエラーとなるバグを修正
　具体的には、モジュール2のsumicheckプロシージャにバグがあり、エラー終了時にストックしておいたnum_move()の値を書き
　戻していなかった点を修正。

ver 6.1      2022.2.6
・同じクラスにする児童、しない児童の指定を１人から５人に変更。
・起動後初めて児童情報シートを表示するときにuserform9の入力説明を表示するようにした。
・userform4の全児童消去で、全児童データ消去後通し番号を１０００番までふるように改変。

ver 6.2      2022.3.29
・三段階項目表示のバグを修正。罫線プロシージャを手直ししたのにここを直していなかったため。
・起動後初めて児童情報シートに入ったとき、データ入力ガイダンスを見るか聞くようにした。また、児童情報シートに多くの
　データ入力説明用オートシェイプを作ったり画面切り替え用userformを４個作成した。
・児童情報シートの元学級欄に、文字列化した数字を入力または貼り付けたとき、いつまでも自動組み分けが終わらないバグを
　修正。この不具合は文字列化数字が数個では起こらず、大量に貼り付けられないと起こらないようである。
　対策としては、データチェックプロシージャに、通し番号と元学級番号を数値化する(val関数）ルーチンを入れた。これは児
　童情報シート自体は書き換えず、児童情報シートからdata()に読み込むときに変換を行っている。
・児童情報シートで行挿入をするとき、教科の合計欄の数式が五教科合計点でなく四教科合計点になっていたバグを修正。これ
　は教科数を４から５にしたさい行挿入プロシージャを修正しなかったからである。

ver 6.3		2023.11.15
・同じクラスにする、しない児童の設定に矛盾があった場合エラーとなるが、エラー以後児童情報を修正して自動組み分けをし
　ようとしてもエラー停止してしまうバグを修正。具体的には全体組み分けプロシージャのエラー処理のend文をexit function
  に変更。
・エラーのあと児童情報シートの設定誤りのあった児童に自動的にジャンプするようにした。
・異クラス調整の３番目のエラー(-3)について処理が抜け落ちていたので追加。
・エラー時のメッセージを分かりやすく書き換え。

ver 6.4		2024.1.21
・仮クラスが２学級の場合処理がループしエラーとなってしまうバグを修正。具体的には組み合わせ変換プロシージャを書き換え
　自動学級編成プロシージャも一部変更した。

ver 6.5		2024.1.28
・初期設定に登録されている元クラス数が，児童情報シートに登録されている元クラス数より少ない場合エラーとなるバグを修正
　具体的には、児童編成の前に元クラス数をチェックし初期設定のほうが少なければ警告を出すようにした。

ver 6.6		2024.2.10
・児童情報シートの元クラス番号が、初期設定に登録されている元クラス数より多い場合にエラーとなるバグを修正。
　ver6.5では初期設定と児童情報シートの元クラス数を比較したが、元クラス数は同じでも元クラス番号にそれを超える数を入力
　している場合が出てきたので、ver6.5の警告ルーチンを作り直し、元クラス番号が初期設定の元クラス数を超えていると警告を
　出すようにした。

ver 6.7		2024.2.25
・使い方によっては自動学級編成実行中にエラー停止してしまうバグを修正。全児童データセットプロシージャを実行する前に
　最大児童数セットプロシージャが実行されないコードが初期設定を含め複数存在していたため、児童データ取り込みでエラーが
　出ていた。全児童データセットの中に最大児童数セットを書き加え必ず児童データ取り込み前に最大児童数がセットされるよう
　に改変。
・初期設定の元クラス数より児童情報シートの元クラス番号が多かった場合のエラーメッセージを分かりやすく書き換え。
・メニュー画面にベクター上の最新版にジャンプする表示を追加。

ver 6.8		2024.2.25
・配列最大、配列最小、二配列最大、二配列最小プロシージャにバグ。処理をパスする要素番号を指定する機能が働いていないこと
　が判明。上記プロシージャを改変。
・元クラス人数調整プロシージャ内のresult3=(total_stuent)を(max_kariclass)に訂正。total_studentが少ない場合エラー停止す
　る場合があった。プログラムミス。

ver 6.9		2024.2.27
・三段階平均点セットプロシージャにバグ。編成するクラスの人数が1人になる場合エラーとなる場合あり。左記プロシージャを訂正。

ver 7.0		2024.3.8
・「結果のお知らせ」シートに、自動組み分けの結果だけでなく手動で組み分けを変更した後の結果も表示できるようにした。具体的
　　にはmodule2に結果表示プロシージャと事前準備プロシージャを新設し、module2の結果確認後処理も改変。これにより結果のお知
　らせシートを表示する度に結果確認を行い表示するようになった。
・仮クラスの設定が実際に児童情報シートで使っている仮クラス数より少ない場合集計シートを表示するとエラーとなるバグを修正。
　表示前に事前準備プロシージャを実行して仮クラスの状態をチェックするようにした。
・同じクラスにする、しない児童に指定した通し番号の児童が実際に児童データに存在するか自動組み分けの前にチェックするよう
　にした。

ver 7.1		2024.11.29
・個別カードに英語の欄がなかったので追加

ver 7.2		2026.1.3
・office365,エクセル24からactivexがデフォルトで全面停止にセットされるようになったので、本ソフトを使うにはエクセルのセキュ
　リティ設定をユーザーが変更しなければならなくなった。そごてactivexを使ったボタンやオプションボタンを削除しフォームコント
　ロールのボタンに変更した。これに伴い、内部のコードも一部書き換えている。
・ベクターで配布しているファイルはデフォルトは入力例として１人だけ児童データを入力しているが、この状態で自動編成をクリック
　するとエラーとなってしまう。そこで登録児童が１人だけの場合は警告メッセージを出して停止するようにした。

ver 7.3		2026.1.28
・range(cells のような操作先未指定のコードを書き換えた。（ツール集を除く）安定性向上のため。
・児童検索に、検索条件クリアのボタン追加
・児童検索後に元の画面に戻るメッセージが出るようにした。
・unload の前にif userform.visible=true then:を挿入。userformがない場合でもエラーとならないため。

ver 7.4		2026.2.20
・メニュー画面の学級編成開始ボタンのコマンドが間違っており、自動学級編成が開始できないバグを修正。
・半自動学級編成で学力段階が未記入の場合のエラー処理が間違っており、警告後にループしてしまうバグを修正。

ver 7.5		2026.2.25
・起動時は児童名欄のみ、自動組み分け開始時には全項目欄のデータから文字列・数字前後の空白を取り除くようにした。
・自動組み分け開始時に、教科点数、運動能力、協調性、身長が数字かチェックするようにした。
・教科平均書き込みプロシージャの教科数のカウントに英語が入っていなかったので訂正
・userform2のある表示項目設定をクリアにしたいとき、リストの最上段でなく途中の空白項目を選択してもその項目が表示されなくなる
　よう改善。コンボボックスチェックプロシージャを改変。
・userform2の列幅変更のヒントをわかりやすくした。また説明書の該当部分も書き換えた。
・半自動組み分けでの、学力段階未記入のエラーメッセージをわかりやすく書き換え。
・姓と名を分けて児童名を入力する機能を削除。児童データを他ファイルからコピーする時に間違いの原因となりやすいので。

ver 7.6		2026.2.30
・学級別名簿、児童情報シートのメニューを小型化してノートパソコンでもメニュー画面がはみ出さないようにした。
・今までデータコピーを繰り返すうちにたまってしまった児童情報シートのシェイプを削除
・シェイプの高さを減らしてノートパソコンでも見やすくした。

ver 7.7		2026.3.
・同じ組にする子・しない子の判定基準が、従来は全員OKかだめだった子が一人でもいるかの二択だったが、だめだった子が4人までは人数
　が出るように直した。多クラスでは同じ組にする子の実現が難しくエラーが出やすいのでエラーを減らす効果が期待されるため。

ver 7.8		2026.3.15
・結果確認○項目用・三段階用プロシージャでも、エラーとなる子を4人までカウントしてそれに応じた重みで結果を返すようにした。
・評価プロシージャで、特別支援の振り分けの判定を従来は結果確認○項目用プロシージャを使っていたが、専用プロシージャで行うよう
　にした。
・全体組み分けプロシージャ内で、組み分けの順番を特別支援を固定学級の次に上げた。これにより、多クラスでの組み分け時に特別支援
　のばらつきが大幅に減り同時に他のパラメータも改善された。評価での優先順位と全体組み分けでの優先順位が一致していないことが成績
　悪化を招いていたと思われる。協調性についても、学力段階の次だった優先順位を学力段階より前に上げた。これにより評価の順番と
　一致した。




