***********************************************************************************************
行事予定の差分一覧 制作秘話
Copyright(C) 2021 by しげるがもげる
***********************************************************************************************
◆はじめに
このドキュメントには、制作に関わっての作者の思いや苦労が書いてあります。
技術的な細かいことに興味のない方は、読み飛ばしてください。
エクセルでマクロを組んでみようかなと思われる方は、読むと参考になる部分があるかもしれません。
◆制作秘話
年度末になると,市から来年度の行事予定が送られてきます。
1次案,2次案と更新されるたびに送られてくるのですが,どこがどう変わったのか見つけるのがものすごく大変です。
そこで,削除された項目と追加された項目を,一覧で表示するものを作ろうと思ったのがきっかけです。
◆工夫や苦労など
<差分の書き出し>
まず,差分を見つける処理を,どうやったら実現できるのか,考えてみました。
項目は,全角のスペースで区切られているので,それを元に配列変数に格納することまでは,すぐに思いつきました。
問題は,削除された項目をどうやって見つけ,追加された項目をどうやって見つけるか,です。
難しい問題だと思っていましたが,方法は意外にあっさりと見つかりました。
旧データが「1・2・3」,新データが「2・3・4」となっていた場合,削除されたものは「1」,追加されたものは「4」になります。
それを実現するためには,旧データと新データを比較して,同じものが存在したら双方でその項目を消していきます。
そして残った項目は,
○旧データの残り・・・削除された項目
○新データの残り・・・追加された項目
になる,ということがわかりました。
<データの整形>
1次案,2次案の元データですが,よくよく調べてみると,区切り方がいろいろと混じっていました。
@全角のスペース1個 → これが本来の区切り方
A全角のスペースが2個以上
B改行がしてある。
C半角のスペースが混じっている。
そこで,全角のスペース1個になるよう,元データを整形することにしました。
Aについては,全角スペース2個を1個に置き換える処理を,何回も繰り返して1個だけにします。
Bについては,改行を全角スペース1個に置き換えます。
C半角のスペースは,全角スペース1個に置き換えます。
これで,ちゃんと項目として,比較できるようになりました。
◆最後に
ここまで、熱心に読んでくださってありがとうございました。
プログラムを組んだことのない方には、わかりにくい内容だと思いますが、これを機会にエクセルの
マクロに興味を持っていただければ、と思っています。
エクセルは、本当に楽しいツールです。自分の思いや考えが表現できます。
そんなエクセルに、日々、感謝です。