エクセルで楽々校務

学校現場で使えるエクセルファイルや小技の紹介をしています。掘り出し物があるかもしれません。あと、今までの実践での疑問点もつぶやきます。

総授業時数予測シート~7時間目をいつまでやればいいの?

コロナ渦の影響で、授業時数がかなり圧迫されています。

時数は足りなくてもいいようですが、わが校では1学期から週2回、4年生以上で、7時間目を実施しています。

2学期には運動会や宿泊学習、修学旅行などの行事も入ってきます。きつい(-_-;)

そもそも、7時間目を実施するということは、時数を確保したいからでしょう。

では、いつごろまで7時間目を続けたら時数は確保できるのでしょう・・・。

 

ということで、マクロを使った時数予測シートをご紹介します。

例によって、自分の備忘録も兼ねて。

f:id:exeladmin:20200809235432p:plain

使い方は、

①H1セルに西暦を打ち込む。(これは万年カレンダーです。ずっと使えます。)

②N10セルに基本時数を打ち込む。

③N8セルに行事の時数を打ち込む。(これは可変です。)

緑のボタンを押して、土日以外に●(授業日)を入れて、基本時数をマクロで入れてみる。

休業日の●を消して、緑ボタンの下の青ボタンを押すと、休業日の時数が消せます。

⑥あとは、学校の実情で細部を調整します。

 

U6セルの行で結果が分かります。

行事時数は可変なので、時数を確保するためには、行事を○時間にしないといけない

とかで数字を変えられます。

 

この試算だと、3年生の時数が厳しそうです。

すでに、4日間臨時休業日が入ったので、24時間はこの表よりマイナスです。

 

実際にコマを入れてみないと本当の過不足は分かりません。それも学年別に。

 

話を戻して、わが校では、2学期まで週2回7時間目を行うと、このような結果です。

足りないことはなさそうですが、ギリギリ。3年生は厳しいということが分かりました。

 

以上のようなことができるエクセルブックです。

シートの数式記述やフィルターにもいろいろ工夫をしていますが、

説明していると長くなるので割愛します。使ってみれば便利さが分かると思います。

使えそうならどうぞ。

 

では、また(^^)/

1つのブックにまとめた各種クラス名簿

これも備忘録です。当たり前ならごめんなさい。

クラス名簿は1つのブックにまとめておいた方がいいですね。

いろんな種類の名簿があったり、専科の先生なら受け持ちクラスの名簿はひとまとめにしておいた方が煩雑になりません。

例えば、

f:id:exeladmin:20200809003453p:plain

登録用シートに関係者名簿を作っておきます。

A列に、学年&組&番号 から成るコードを作成します。

-----------------------------------------------

f:id:exeladmin:20200809003710p:plain

通常名簿のA列にコードを貼り付けて、Vloolup関数で名前を読み込みます。

C1セルで「クラス」を入力すれば該当クラスの氏名が読み込まれます。

---------------------------------------------------

f:id:exeladmin:20200809003851p:plain

これは回収用名簿です。提出物チェックに結構使えます。

名前は「通常」からリンクを張ります。これで、「通常」のクラスを変えれば

連動して氏名が変わります。

----------------------------------------------

f:id:exeladmin:20200809004155p:plain

同じように、読み仮名付き名簿

f:id:exeladmin:20200809004239p:plain

これはあんまり使わないかもしれませんが、記述用名簿シートを作ります。

これで、「通常」名簿のクラスを変えれば全部変わります。

---------------------------------------------

専科の先生なら、通常名簿のシートタブをCTRL+ドラッグで

f:id:exeladmin:20200809004449p:plain

いくらでも通常名簿が作れます。

 名簿は1つのブックにまとめておきたいです。

 

以上述べたサンプルシートです。

使えるようならお使いください。(マイナーなブログなので、自分の備忘録として置いておきます(^^;

 

 

では、また(^^)/

 

VBA:印刷範囲をセル値で指定する方法

印刷範囲を指定する時に、

PageSetup.PrintArea = "A1:R10"

って書くことが多いと思いますが、

 

例えば範囲を変数にしてセル値で可変にしたいときもあります。

PageSetup.PrintArea = Range("A1", "R" & i).Address 

って書くと、できちゃいます。

以下、標準モジュールにコードを書いてみました。

R列までで、A1セルに入れた数字の行数まで印刷範囲にできます。

----------------------------------------------------

Sub 印刷範囲行を変数で指定()

Dim i As Integer

PageSetup.PrintArea = "" '印刷範囲クリアー
ResetAllPageBreaks '改ページクリアー

  i = Range("A1") '★変数記入セル

     PageSetup.PrintArea = Range("A1", "R" & i).Address '★印刷範囲

End Sub

-----------------------------------------------------

Rangeの書き方と、

.Address を使うのがミソですね。

 

通信簿印刷で、所見欄を印刷範囲に入れたり外したり、

週案で7時間目まで表示させたり、させなかったりが、

印刷範囲を変えるだけでできます。

セルに値を入れれば指定できるので、コードを書き換えなくてもOK。

 

備忘録として書いておきます。

 

では、また(^^)/