TOP > 行事予定作成支援ソフト > 制作秘話

***********************************************************************************************
                     行事予定作成支援ソフト 制作秘話
                                           Copyright(C) 2018 by しげるがもげる
***********************************************************************************************

◆はじめに
 このドキュメントには、制作に関わっての作者の思いや苦労が書いてあります。
 技術的な細かいことに興味のない方は、読み飛ばしてください。
 エクセルでマクロを組んでみようかなと思われる方は、読むと参考になる部分があるかもしれません。


◆制作秘話
 教務の仕事のひとつに,来年度の年間行事予定の作成がありますが,これがけっこう手間がかかります。
 年間予定とそれぞれの月予定があるのですが,行事の日にちが移動したりすると,これを両方で動かさなければなりません。
 「行事の移動を,1つの画面でできないか?」と考えて作ったのが,作ったきっかけです。
 また,クラブなど定期的に入れ込む項目が,ちゃんと入っているかどうか,一覧で見ることができたら便利だと思い,
 そういうシートも作りました。


◆工夫や苦労など
 <内容の同時編集【各月・年間】> 1つにまとめたスクロールバー
  日にちを変えるスクロールバーなんですが,初めのころはスクロールバーが2つあって,それぞれ「月」と「日」に分かれていました。
  しかし,日常的に使っていると,これがとても不便でした。
  例えば,4月30日から5月1日に移動したいのに,4月30日がアクティブになっているところで,「月」を変えると5月30日になってしまい,
  そこから,1日まで戻らなくてはなりませんでした。
  そこで,スクロールバーを1つにして,4月1日から3月31日までをシームレスに動かせるようにしました。
  ここで役に立ったのが,シリアル値です。
  毎月のカレンダーの曜日の部分は,シリアル値を使っています。(表示を曜日表示にしているだけ)
  これを使うと,Month関数で月を求めることができ,Day関数で日にちを求めることができます。
  そして,月はそのままワークシート名になり,日にちは+3をすると行番号になります。
  ただ,シリアル値の値を,そのままスクロールバーの値にはできませんでした。
  というのは,スクロールバーの値の範囲が,0〜32767までで,シリアル値は43210のように範囲を超えています。
  そこで,4月1日のシリアル値を減算することで,0〜365までの範囲に収めました。
  
 <内容の同時編集【各月・年間】> マウスをリストボックスに重ねたらそこにフォーカスが当たるように
  ユーザーフォームでリストボックスを使うとき,普通は
  @マウスで使いたいリストボックスをクリックする。
  Aリストをクリックする。
  と,2段階が必要になります。
  実際に使っていると,これがすごく面倒でストレスになります。
  それで,マウスオーバーという方法を使って,マウスを重ねたリストボックスにフォーカスが当たるようにしました。
  リストボックスの中では,MouseMove という部分で,その設定を行います。
  
 <項目月日(年間)・項目月日(各月)> 作業列&配列数式
  予定がどんどん書き込まれていくと,そこから見つけたい項目を探し出すのが大変です。
  例えば,「クラブって,何月何日に入っていたっけ?」などのように,日にちを拾い出すようなときは,それはもう大変です。
  そこで,項目を打ち込むと,月日の一覧表が出てくるワークシートを作りました。
  非表示にしていあるA列からK列までの間に,作業列として配列数式を使った関数が書き込んであります。
  ここで,探したい項目のある行番号一覧を表示し,それを集めてきて一覧にしています。
  ただし,月に5つまでしか拾い出さないので,月に6つあったりすると,6つ目は表示されません。

 <セルデータの月日を調べる>
  各月で入力している時,「他の月日にないかちょっと調べたい。」というときがあります。
  わざわざ項目月日シートに移動して,入力するのも手間だし・・・。
  こんな時に使えるよう,セルに入っているデータから直接「項目月日」を調べることができるようにしました。
  仕組みは,セルのデータを分割して配列に格納し,それを項目月日シートの欄に書き込んでいくだけです。
  項目月日シートを利用しているので,コードの行数も少なくて済みました。


◆最後に
 ここまで、熱心に読んでくださってありがとうございました。
 プログラムを組んだことのない方には、わかりにくい内容だと思いますが、これを機会にエクセルの
 マクロに興味を持っていただければ、と思っています。
 エクセルは、本当に楽しいツールです。自分の思いや考えが表現できます。
 そんなエクセルに、日々、感謝です。