カレンダー自動挿入マクロ
初めに
大昔に大好きで愛用していた「Vz-Editor」には、現在のカレンダーを挿入するマクロがありました。秀丸でも、そうしたことをしたいと思いました。ネットを探しましたが見つかりませんでした。だから、がんばって自分で作りましたw
何も、書いているテキストの途中にカレンダーを入力したいのではなく、テキストを書いている最中に、ちょっと日付などを確認したいときに便利なんです。メールの返信を書いているとき「来月は、え〜と」みたいな。
1904年1月以降の年月に対応しています。
機能
現在編集中テキストの、カーソル位置にカレンダーを自動挿入します。
マクロの組み込み方
秀丸のヘルプや解説しているサイトを参照するか、詳しい人に聞いてください。
使い方
マクロを実行すると、年月を指定するウィンドウが開きます。
空欄のまま[OK]ボタンをクリックすると、現在のカレンダーを挿入します。
「2012/8」や「2012/09」のように年月を指定すると、その年月のカレンダーを挿入します。
年と月の区切りは「/」です。「2012-7」や「2012.9」などのように、「/」ではない記号で区切ると正しい年月と認識せず、現在のカレンダーを挿入します。「2012/7/21」のように日まで指定してもエラーになりませんが、日は無視されます。
「+1」や「-2」のように指定すると、翌月や2ヶ月前のカレンダーを挿入します。
挿入するカレンダーの左余白は、コードの
$LeftMargin = " "; //カレンダーを表示する左余白
部分を調整してください。
現在のカレンダーを表示するとき、今日の日付を選択状態にします。
(今日が 29 日だったとき)
ただし、これは今日の日付(ここでは29)を上方向にただ検索しているだけです。これでは1桁の日付のときうまくいきません。そのへんを厳密にやってもいいんですが、処理が難しくなるし、そもそも本来の機能ではありませんので、適当に処理しています。そんな中途半端な機能はいらん!という方は、コードの
#flag = 1; //今日の日付を選択するかどうかのフラグ
を 0 にしてください。
感想
シリアル値を作るのは大変でした。さらに、任意の日付が何曜日になるかを判定するのも大変でした。だって、うるう年があるから。本当は、Windows版Excelのシリアル値と同じように、1900年1月1日以降を計算しようとしたんですが、これが意外と大変。で、1904年から計算してみたら、こっちの方がはるかに簡単でした。Mac版Excelのシリアル値が1904年を起点にしているのは、実に賢いなぁと実感しました。
calendar100.zip ← こちらからダウンロードできます。
[目次]に戻る