【Excel vba】名簿から自動で席替えしてくれるマクロの作り方!!

はじめに

名簿リストから席を自動で決定してくれる Excel マクロの作り方についてご紹介します。

このマクロは席数を自分で指定できるようにしてあるので、例えば 4 × 4 や 5× 6 の席でも自由に変えて席替えできることができます。

小学校や中学、高校では、気分転換のためかなんとなくか目的はさまざまですが、とにかく定期的に席替えが行われると思います。

そんなとき毎回くじ作ってそのくじを引いてみんなでギャーギャー騒いで...って楽しいんですが、教員の方は早く帰りたいのかもしれません。

そんな教師はあんまり見たことがないんですが、少なからず席替えに時間を割くことがほとんどなくなりますので「いいな」と思われた人はぜひ使ってみてください。

※実際に作成した Excel マクロは下記のボタンからダウンロードできます。

 

操作方法

(1)名前を入力します。名前の左に番号が付いていますが、番号はなんでもいいです。

ダウンロードしたマクロには番号を自動で入力する関数を埋め込んでいますが、消して出席番号とかにしていただいても問題ありません。

(2)席の行数と列数を入力します。値は整数を入力してください。また「チェック」というセルで入力チェックを行ってます。

例えば、名簿シートに10人で座席数が6(行数 : 2  列数 : 3)の場合は、4人分席が不足していますね。こういうときは「チェック」欄に座席数が不足しています。というメッセージが表示されます。

 

(3)「座席表を作成」ボタンを押下します。すると別シート「座席表」に結果が表示されます。

座席表自動作成マクロの作り方

座席表自動生成マクロの作成方法についてご紹介します。今回は Excel vba をつかって作成しています。

シート構成
  • 「名簿」シート : 名簿を入力するシート
  • 「座席表」シート : 座席表が出力されるシート

シートは上記2種類から構成されます。要は入力用シートとして「名簿」、出力用シートとして「座席表」の2種類です。

「名簿」シート

入力欄は「名前」「行数」「列数」の三つです。

「番号」はいちおうつけていますが、処理上は何の関係もありません。つまりどんな番号が入力されても問題なく動作できます。

ダウンロード用の Excel マクロは自動で入力できるようにしていますが、上書きして出席番号にしていただいても何の問題ありません。

「座席表」シート

初期はまっさらなシートです。処理が完了した後に座席表が書き出されます。

 

処理内容(Excel vba)

処理の概要
  1. 名簿シートの読み込み
  2. 座席表シートへの書き込み
  3. 教卓の書き込み

名簿シートの読み込み

これはシンプルな処理で、「名簿」シートのB列2行目からセルの値が空白になるまで読み込んで配列に入力しているだけです。

座席表シートへの書き込み

「名簿」シートから取得した名前のデータを含む配列をランダムに取り出して、取り出した値を「座席表」シートに書き込むだけの処理です。

ソースコードを見ると複雑そうに見えますがやっていることはシンプルです。

  1. 「名簿」シートのエラー処理(座数の行数と列数  : 数値以外 or 0のとき or 空白ならエラー)
  2.   エラー処理が終わったら「座席表」シートをいったん初期化
  3. 「名簿」シートから取得した名前を「座席表」シートに書き込む

教卓の書き込み

最後に教卓を書き込む処理です。2行目に固定で、列は座席表の列数の値に応じて書き込まれます。

席の列数を2で割ったときの剰余計算(余りを算出)をして、その値が1の場合(つまり奇数のとき)は、席の列数を2で割った値を整数に変換し、得られた値 + 2を書き込み先の列番号とします。

席の列数を剰余計算をした値が0の場合(つまり偶数のとき)、席の列数を2で割った値を整数に変換し、得られた値 + 1 と得られた値 + 2 を書き込み先の列番号(事前に二つのセルを結合させるように処理)とします。

例えば席の列数が7(奇数)の場合、7 ÷ 2 = 3.5 を整数にして 3にします。そして 3 + 2 = 5 列目のセルに書き込むようにします。

また席の列数が8(偶数)の場合、8 ÷ 2 = 4とし、4 + 1 = 5 列目と 4 + 2 = 6 列目を書き込み先の列番号とします。

最後の + 2 ですが、これはB列(つまりセルの2列目)から座席表を書き込むように処理するためにつけています。

 

まとめ

いかがでしょうか?

かなりざっくりした説明だったかもしれませんので、もし作るのがめんどくさいと感じた方は下記ボタンからダウンロードしてみてください。

 

プログラミング学習、独学では難しくないですが?
  • プログラミングをどう勉強したらいいのかわからない
  • わかりにくい参考書が多く、自分一人では解決できそうにない
  • 壁にぶつかった時の解決策がわからない
そんな人にはプログラミングスクールtech boost」がおすすめです。

 
 

プログラミングスクールtech boost」の魅力
  1. オーダメイドの自分の目標にあったプランが受講できる!
  2. 現役エンジニアがあなたの学習を全力サポート!
  3. スクール卒業後のキャリアサポートも充実インターン/就職/転職/独立 など
  4. オリジナル Web アプリも作れるようになります!
  5. 近年トレンドの AI や IoT、ブロックチェーンも学習できます!
  6. 受講スタイル(通学かオンライン授業)も選択可能!

 

こんな人におすすめ!

  • 未経験からでもプログラミングをしっかり学びたい!

未経験からでも受講期間中にオリジナルサービス開発レベルまで全力でサポートします。

 

  • プログラミングを一人で学ぶことに限界を感じた!

未経験で一からプログラミング学習するには限界があります。

現役エンジニアがあなたの目標に沿った学習プランを提案してくれるので安心して学習できます。

 

  • 技術力をつけて、IT企業に就職やフリーランス、独立を目指したい!

卒業後のキャリアサポートも充実しているため、未経験からも IT 業界に参入できます。

 

悩んでいるなら、お気軽に無料説明会へ!

現役エンジニアの私がいいますが、IT 業界は圧倒的な人材不足です。

 

スクールは料金が高いからなあ」と悩まれている人もいると思いますが、

IT業界は仕事が有り余っているため、一度学べば速攻で資金回収できます。

 

もしプログラミング学習で悩んでいたり将来的に IT企業、フリーランスなどで働きたいのであれば、

プログラミングスクール「tech boost」へ無料相談だけでもいってみてはいかがでしょうか?

おすすめの記事