2010年問題 | 元派遣技術者の説明書 現在自営業

2010年問題

プログラムで一回失敗したことを


忘れないようにブログに残すことにしておきます


去年のなつごろにですね


お客さんにエクセルのマクロを組んで納めたんですよ


ほとんどボランティアで



どんなプログラムかというと


台帳を


読ませれば


月報、日報、週報を自動的に出力するような


逆にいままでよくあのデータ量を手で計算してたなって思いますが


まあ



それはさておき


年度を表示するのに


システム日付を取得して


1月から3月なら


年度=年 - 1


4月から12月なら


年度=年


って感じにしてたんですけど



としあけそうそうに


そのお客さんから


2010年度って表示されるんですけどっという


クレーム


2010年になったものの今はまだ


2009年度



てか


まさか


そんなミスを自分が


するはずがないと重い


マクロの


ソースをチェック



そしたら


If 4 <= Month(Date) <= 12 Then


N = Year(Date) & "年度"          /N(String型)


Else


N = Year(Date) - 1 & "年度"


End If



こんな感じで


IF文できちんと判定をかけてました


そしたら


なぜ



なぜ



1月なら


IF文を抜けて


ELSE文に入るはず



おかしいと思い


ステップで実行させてみると



Dateには2010/01/07が入っている


Monthには当然


1



なのになぜか


IF文を抜けない



なんじゃこりゃwww




調べてみると




IF文の不等式



VBAは


4 <= Month(Date) <= 12




これだめみたいです


コンパイルは通るのに><



なんでだめ??




If 4 <= Month(Date) And Month(Date) <= 12 Then


N = Year(Date) & "年度"          /N(String型)


Else


N = Year(Date) - 1 & "年度"


End If


 

こうしたら


うまくいきましたお



つぎから木をつけまそう