- 締切済み
文字列の変換
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
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
疑問なのですが、なぜ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月となります 一例を示しましたが、このように入力の時点で適正な値が入力されれば エラー処理も多少省けるのではと思います 外していたら、飛ばしてください
- n-jun
- ベストアンサー率33% (959/2873)
全角数字と半角数字の違いとか?
補足
n-junさん 返信ありがとうございます。 これも調べてみましたが間違いありませんでした。
- fujillin
- ベストアンサー率61% (1594/2576)
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に飛んでしまいます。
- fujillin
- ベストアンサー率61% (1594/2576)
質問文だけでは、よくわかんないけど… こういうこと? If Range("M4") <> "" Then Range("M4") = "1月" If Range("N4") <> "" Then Range("N4") = "2月" あるいは If Range("M4") <> "13月" Then Range("M4") = "1月" というようなことかな?
- merlionXX
- ベストアンサー率48% (1930/4007)
> 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
補足
hige_082さん 返信ありがとうございます。 >疑問なのですが、なぜ13月とか14月が出てくるのでしょうか? >マクロか関数で入力されているのでしょうか? こちらマクロでの結果が12月以降が13月・14月となっています。 >Range("B1").Value = DateAdd("m", 1, Range("A1").Value) ですがマクロに組み込んでみましたがだめでした。。 ちなみに念の為マクロを組み込んでいない更のBOOKに 今まで回答をもらった通りにマクロを記述したら実行されました。 この違いは何なのでしょうか?