• 締切済み

文字列の変換

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

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.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月となります 一例を示しましたが、このように入力の時点で適正な値が入力されれば エラー処理も多少省けるのではと思います 外していたら、飛ばしてください

maki06
質問者

補足

hige_082さん 返信ありがとうございます。 >疑問なのですが、なぜ13月とか14月が出てくるのでしょうか? >マクロか関数で入力されているのでしょうか? こちらマクロでの結果が12月以降が13月・14月となっています。 >Range("B1").Value = DateAdd("m", 1, Range("A1").Value) ですがマクロに組み込んでみましたがだめでした。。 ちなみに念の為マクロを組み込んでいない更のBOOKに 今まで回答をもらった通りにマクロを記述したら実行されました。 この違いは何なのでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

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

maki06
質問者

補足

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

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

No2です。 下段のほうを、タイプミスしてました。  If Range("M4") <> "13月" Then Range("M4") = "1月"                ↓  If Range("M4") = "13月" Then Range("M4") = "1月"

maki06
質問者

補足

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)
回答No.2

質問文だけでは、よくわかんないけど… こういうこと?  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)
回答No.1

> 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

関連するQ&A