カレンダー自動挿入マクロ

このエントリーをはてなブックマークに追加  


初めに


大昔に大好きで愛用していた「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 ← こちらからダウンロードできます。

[目次]に戻る