プロが教えるわが家の防犯対策術!

12月以降13月で表示されているセルを1月に変換したいのですが
下記のようにセルM4にデータがあれば13月が入るので1月
また来月になると2月分が14月として入るのでElseif以下にしたいのですが
実行されません。valueを"13月"としてみたが同じでした。
ちなみに1月~14月までは文字列にしたのですが、これが原因なのでしょうか?
何かアドバイスがあればお願い致します。

 If   Range("M4") = value Then
 Range("M4") = "1月"

  Elseif Range("M4:N4") = value Then
  Range("M4") = "1月"
  Range("N4") = "2月"

 End If

A 回答 (5件)

疑問なのですが、なぜ13月とか14月が出てくるのでしょうか?


マクロか関数で入力されているのでしょうか?

仮に関数で入力されているなら、次のような方法はダメでしょうか
A1に2008/12/1が入力されているとします
B1へ次の式を入力してみてください
=DATE(YEAR(A1),MONTH(A1)+1,1)
表示形式を m"月" とすれば12月の次は1月となります

マクロの場合ですが、同じくA1に2008/12/1が入力されているとします
次のマクロを実行してみてください
Sub test()
Range("B1").Value = DateAdd("m", 1, Range("A1").Value)
End Sub
A1の日付を1ヶ月加算するマクロです(詳しくはヘルプを参照してください)
表示形式を m"月" とすれば12月の次は1月となります

一例を示しましたが、このように入力の時点で適正な値が入力されれば
エラー処理も多少省けるのではと思います

外していたら、飛ばしてください

この回答への補足

hige_082さん
返信ありがとうございます。
>疑問なのですが、なぜ13月とか14月が出てくるのでしょうか?
>マクロか関数で入力されているのでしょうか?
こちらマクロでの結果が12月以降が13月・14月となっています。

>Range("B1").Value = DateAdd("m", 1, Range("A1").Value)
ですがマクロに組み込んでみましたがだめでした。。

ちなみに念の為マクロを組み込んでいない更のBOOKに
今まで回答をもらった通りにマクロを記述したら実行されました。
この違いは何なのでしょうか?

補足日時:2009/02/19 00:35
    • good
    • 0

全角数字と半角数字の違いとか?

この回答への補足

n-junさん
返信ありがとうございます。
これも調べてみましたが間違いありませんでした。

補足日時:2009/02/19 00:40
    • good
    • 0

No2です。


下段のほうを、タイプミスしてました。

 If Range("M4") <> "13月" Then Range("M4") = "1月"
               ↓
 If Range("M4") = "13月" Then Range("M4") = "1月"

この回答への補足

fujillinさん merlionXXさん
返信ありがとうございます。
> If Range("M4") = value Then ???
値が入っていたら。。としたかったのですが
空白でなければと同じなのでIf Range("M4") <> "" Then でしたね。
失礼しました。

しかしIf Range("M4") = "13月" Then Range("M4") = "1月"
では実行されませんでした。
ブレイクポイント+F8で実行させてみたのですがEnd ifに飛んでしまいます。

補足日時:2009/02/16 19:01
    • good
    • 0

質問文だけでは、よくわかんないけど…



こういうこと?
 If Range("M4") <> "" Then Range("M4") = "1月"
 If Range("N4") <> "" Then Range("N4") = "2月"

あるいは
 If Range("M4") <> "13月" Then Range("M4") = "1月"
というようなことかな?
    • good
    • 0

> If Range("M4") = value Then ???



このvalueってなんですか?
話が見えないのですが・・・・。

ひょっとして、M4が空白でなければ1月、N4が空白でなければ2月とすればいいんでしょうか?

If Range("M4") <> "" Then
Range("M4") = "1月"
End If
If Range("N4") <> "" Then
Range("N4") = "2月"
End If
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!