wordのフィールドコードで日付を表示するのは良くやりますが、
同様にフィールドコードで「今月の月末が何日なのか」表示できれば、
もっと便利。
例えば今日は平成24年5月14日ですが、「5月31日」を表示するフィールドコードが欲しくなりました。
今月、即ち「平成24年5月」までなら、簡単に作れます。
日付のフィールドコードを少し削るだけですからね。
{TIME
\@ "ggge年M月"}
その前に、フィールドコード関連操作のおさらい
1.フィールドコードの作り方
文書中にコードを書き、選択してCtrl+F9 (改行文字等を含めないように注意)
これでフィールドコードに変換される。
ネスト(入れ子)するときは、中のフィールドコードも個別に変換
2.編集
右クリック又はAlt+F9でコードを表示させて編集。
また、更新をかけて編集後の結果を反映させる。
以上
「今月1日」はコードに続けて「1日」とタイプすれば用が済みますが、
月末日はその月によって違うし、2月は閏年もあるので、そう簡単にはいきません。
excelだと簡単ですが、wordのフィールドコードはほとんど触ったことがないので、
google先生に聞きながら作ってみた。
見やすいようにコードを3行に分けてますが、実際はつなげて使えます。
wordにコピペして改行文字を消してつなげ、{}ごとにフィールドコード化すればOK。
これで今月(5月)の月末日、即ち「31」と自動で表示されるわけです。
来月になれば「30」と。なんとすばらしい。
たかが2文字を自動化させるのにこの労力w
{ set nen { time \@"yyyy" } }
{ set tuki { time \@"M" } }
{ =if(or(or(tuki=4 ,
tuki=6 ),or( tuki=9 , tuki=11)), 30 , { =if(tuki=2, { =if(or((MOD(nen ,
4)=0)*(MOD(nen , 100))<>0, (MOD(nen , 400))=0), 29, 28) } , 31 ) } ) }
解説
1行目:今年が何年なのか、変数nenに格納
2行目:今月が何月なのか、変数tukiに格納
3行目:if文の入れ子になってます。
1つめ 4,6,9,11月なら30日。そうでないなら2つめへ
2つめ 2月なら3つめへ、そうでないなら31日。
3つめ 閏年なら29日。そうでないなら28日。
閏年は通常4年ごとですが、100年ごとに例外的に平年。さらに400毎に例外の例外で閏年。というややこしい事になってますので、それなりに長くなってます。
・・・コード、間違ってない・・・よね。
(2月の判定を最初に持ってきた方が読みやすかったかも。)
ちゃんとgoogle先生に聞けばどこかにコードがあったかも知れないけど、
探し方が悪いのか見つからなかったので、備忘録として記録。