エクセルで楽々校務

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

【VBA】VBAで配列を、高速に書き出す方法

新年おめでとうございます。 お久しぶりです。今回は、配列を高速に書き出す方法の備忘録です。 e出席簿の改良で難点がありました。 休日に赤縦線を引いたり、欠席や出席停止児童数の計算ができるのは当たり前。 私がこだわっているのは、「備考欄への欠席理…

【VBA】dictionaryのkeyに、一意の連番を使用して高速に値転記する方法

お久しぶりです。 成績処理で忙しい季節ですね。 さて、今回は、dictionaryについてです。 ある程度VBAを使いこなせてくると、値を一気に転記できるdictionaryを 使いたくなりますね。 一般には、一意のkeyに紐づけされたitemを転記できるわけですが、 1…

【VBA】異なるブックからリンク貼り付けのツボは「.Activate」

出席簿の備考欄も自動入力できるようにして、電子出席簿はほぼ完成したのですが、勤務校では保健日誌ともデータ照合して数字に根拠を持たせるようにしています。 「出欠整合性チェックブック」を作って、各クラスの出席簿と保健日誌の出欠状況数のリンクをコ…

【VBA】複数シートを高速にループする(印刷プレビューやページ設定)コード

明けましておめでとうございます さて、新年最初のネタは、複数シートをFor Each~でループしながら、 印刷プレビューや印刷範囲を設定する時に実質的に高速に回すことができるコードの紹介です。 ネットを検索すると、定番の Application.ScreenUpdating = …

【VBA】データ最終行をFor eachループで取得するマクロ

データ最終行を取得するVBAコードは、 Cells(Rows.Count, 1).End(xlUp).Row が定番ですが、任意の範囲内なら、For each nextを使って最終行を取得した方が手軽にできそうな気がしてコードを書いてみました。 【使い道】 出席簿備考欄の記述で、「新型コロナ…

【VBA】出席簿で欠席内訳を備考欄にまとめて記入する(Join関数)

出席簿を自動化する上で、備考欄の記入も自動でできるように検討してきました。 今回は、長欠の内訳を、Join関数を使って記入する方法を紹介します。 授業日数の1/3以上欠席した児童の氏名、理由、合計日数を備考欄に記入するシートを例として作ってみま…

【VBA】FindNextで「1以上の整数値を全て」検索できるコード

【11月6日更新】コードが不完全だったので修正しました。 FindとFindNextを使うと、検索値に該当するデータを列挙することができます。 indexやmatchを使うと検索最初のデータは拾えますが、該当値が複数あるときは、 ダメですね。 ネットを探してみると…

【自作ソフト】運動会個人走編成シートを、男女別にも組めるように改良しました

前回、ご紹介したシートですが、男女別にも組めるように改良しました。 編成条件を選択してボタンを押すと並び替えます。 前回記事に使い方は書いています。↓ ↓サンプルシートです。(男女交互・男女別編成版) 下黒帯の右から4番目のアイコンがダウンロー…

【自作ソフト】運動会個人走コース編成シート(男女交互組)

疾走タイム順に、3クラスを6人ずつ、男女交互組で組編成ができます。 ネットを探しても案外なかったので作ってみました。 もしかして、数式で作るのが普通なのかもしれませんが、 私はリンクを貼りまくったり、セルを押したら長い数式が出てくるのはあまり…

時間割編成ソフト「コマ割りくん」の半自動版

ここまで作ってくると、自動でコマ割りができるようにしたくなりました。 が、全て自動は無理でした。理科は1時間ー2時間で組んでいるので、少し不規則です。ですが、このことを利用して、理科を決めて、ある程度コマを埋めると、 チェックと重複コマ移動ま…

時間割編成ソフト「コマ割りくん」の機能増強版

半自動版が最新です。 ---------------------------------------------- 結論から言うと、機能を増強しました。 ①同時間コマの重複を、同画面でチェックできるようにしました。 ②空き時間の教員名を表示できるようにしました。 最後に評価版のZIPファイルが…

【VBA】奇数行範囲で重複チェックをするマクロ

時間割編成等で、AB週混合で時間割表を作成した場合に役に立ちそうです。 範囲が飛び飛びだと、worksheetfunction.countif(範囲,検索値)>1 はうまく動作しません。 またfindは補助記述が多くてあまり使いたくありません。 発想を変えて、for nextループ内…

【VBA】指定フォルダー内の全ブック・全シートを残らず縦に合体できるマクロ

データ開始行を手動で設定できるように改良しました。 まるまま合体させたり、見出しは1回だけであとはデータ行だけ合体させたり、単一ブックの複数シートを合体させたりと、ほとんどの場合に対応できるようにしました。 研究会の参加者名簿の取りまとめで…

【VBA】セル塗りつぶし色は、RGBやColorIndexを使わず凡例でもよい

運動会特別時間割作成シートで使った手法です。 凡例を作り、同じように塗りつぶしをかければ、RGB等でコードを書く必要がなく、色も自由に変えられます。 【コード】標準モジュール Sub 塗りつぶしフォントカラー凡例コピー() Dim rng, rngR As RangeDim…

【VBA】e週案の機能アップを行いました

現在も稼働しているe週案。2年ほど前から使ってきて、先生方の声も取り入れて機能追加を行ってきました。今回は、指導内容を読み込む機能を別ファイルにコピーできるようにしました。 例えば、昨年度6年担任だった先生の指導内容を読み込んだり、過去の自…

【自作シート】特別時間割作成シート(運動会版)

【更新情報】 10/3 外国語教室の重複チェックの不完全な部分を改善しました。 任意のコマで2学年合同練習を選べるようにしました。●を選択します。 赤塗り白文字から黒文字に戻すように修正しました。 運動会のシーズンがやってきますね。15年くらい前に…

【自作ソフト】戻るリンク自動作成目次シート(完成版)

自校で使ってみると、なんやこれ!!!って大好評だったので、 少し改良しました。通信簿や会計ブックなどにモジュールコピーすると、 即使えます。コピーもダイアログ型に改良しました。 改良点は、 全てのシートの1行目に「目次に戻る」というリンクを張…

【自作ソフト】自由度が高い自動席替えソフト「せきがえる」

【9月3日更新】 リセット時に、男女以外の数字、文字を全部消せるようにVBAコードを修正しました。記事最後に載せているサンプルファイルも修正しました。 普通教室と特別教室のパターンを選択できるようにしました。 男女枠を設定してボタンを押すだけ。…

【自作ソフト】既存のブックにリンク付き目次を自動作成できる「目次自動作成シート」

【最新版】 モジュールコピーをダイアログでできるように改良 この目次自動作成シートは、既存のブックの全シートに「戻る」リンクを張れます。 モジュールをコピーできるので、他のエクセルブックでも使えます。通信簿用に作ってみました。使えるかな・・・…

条件付き書式:2列目を検索して1列目の色を入力セルの側に返す数式

マクロでやろうと思っていたんですが、条件付き書式でできたので、備忘録しておきます。 やりたかったことは、1-1なら青、1-2なら黄色というように、入力するD1セルの方を、所属の色で塗りつぶすことでした。

【自作ソフト】名簿は縦に流れる方がよい~縦割り班名簿作成を通じて~

そろそろ夏休みが終わってしまいます。 今まで作ってきたファイルを紹介したり載せたりしてきましたが、半分は備忘録です。もし、勤務校が変わっても、説明付きですぐに使えるようにしておきたかったからです。 今回は、縦割り班名簿作成を通じて、名簿の流…

【自作ソフト】クラブ・委員会名簿を別々に削除できるように改良しました

この名簿ファイルの完成版です。 一旦作った名簿を別々に削除できるようにしました。転入生が入ってきた場合にも対応できます。データは原簿にあるので、何回でも名簿をワンタッチで作り直せます。 これは、我ながら使えると思います(^-^;

【改良版】必ず1ページに収めて印刷できる「クラブ・委員会名簿」

ご要望があり、抽出フィルターの名前を変えなくてもよいように改良しました。 ほぼ自動で作成できるクラブ・委員会名簿です。ちょっと使えるかもしれません。必ず1ページに収めて印刷できます(^^♪ 【目次】 ①原簿シートに氏名、クラブ、委員会を入力するか…

VBA: シートへ飛ぶリンクの表示列を可変にしてみました

前回のシートに修正を加えて、リンク一覧の表示列をセルに書いた列に移動できるようにしてみました。実はこれ、ひな形の印刷範囲もコピーされるのでむっちゃ楽なんです。 前回の記事はこちら で、今回の画面はこちら

VBA: ひな形シートを児童数40人分コピーして、目次に戻れるようにしたVBAシート

通信簿等でシートを40枚作ると、シートタブで全体を見れません。 シートタブを右クリックしてシート一覧を出しても、スクロールしたりと面倒くさいです。目次シートにリンク一覧を作成し、それぞれのシートに行けるリンクがあれば・・・シートを行ったり来…

オートフィルターで曜日を反映させるには?

曜日ごとにデータを見たい時に、年月日からリンクして曜日の列を作って表を作成するときありますよね。 結論を言うと、セルの書式設定で表示形式を(aaa)に変えただけでは反映しません。

給食当番チェックカード(出席番号で氏名を選べる)

出席番号を入れると氏名が設定されるチェックカードです。 日付などは手書きで! 裏紙に印刷して使っています。 学級担任は忙しいですからね。(人''▽`)ありがとう☆ サンプルファイル(備忘録) ↓ これは、数式だけで作っています。 では、また(^^)/

VBA: VBAの起動と便利な設定

【目次】 ①開発タブを作る。 ②シートモジュールの書き方 ③標準モジュールの書き方 ④ブックモジュール(ThisWorkbook)の書き方 ⑤マクロを、ボタンに登録して実行する。

【自作ソフト】印刷範囲可変の清掃チェックカード(40人8か所まで振り分け可能)

2学期から、縦割り班清掃が始まります。 縦割り班って分かりますか? 異学年で組んでいる班です。(ほとんど清掃でしか使わないのですが) その清掃チェックカードです。B5厚紙に貼って使用しています。 【目次】 ①名簿に載せる順番を決める。 ②「印刷ペ…

VBA:指定範囲で「数式が壊されていないか」をチェックできるマクロ

通信簿を点検していると、評価や評定の数式を無視して手入力している場合があります。 これをチェックするには、エクセルの数式メニュータブの「数式の表示」でできますが、ずらっと数式が表示されるので、ちょっとダサいような気がします。 こんな処理もマ…