• ベストアンサー

ExcelのVBAで桁数制限を設けたい

続けてVBAの質問をさせていただきます。 例えばA1セルの桁数を半角で12桁と条件を設定しています。 ブランクであれば問題無しでよいのですが、値が入っている状態で 12桁未満または12桁以上を入力した場合にアラートを表示させるには どうすればよいでしょうか? If Worksheets("Sheet1").cells(1, 1).length <> 12 then msgbox "桁数が誤っています", vbOkOnly Exit Sub End If こんな感じで作ったもののうまくいきません。 一行目がおかしいようですがどう直せばいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

If Len(Cells(1,1)) <> 12 then   MsgBox("~~~") End If Len関数で文字数を数えます。 お試しくださいませ。 空白に関しては考慮していませんので悪しからず。

bz0715
質問者

お礼

AND条件で値がブランクでないを追加したところうまくいきました。 教えていただきありがとうございました!

bz0715
質問者

補足

たしかに上記のとおりで桁数チェックは可能ですが、 セルがブランクの時(=0)の時はチェックの対象外としたいです。 これはVBAで回避できないでしょうか?

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

Cells(1,1)はオブジェクトなので、数字と評価されると桁数の 概念がありません。一旦文字列変数で受けると桁数が チェックできるはずですが。 それより絶対に数字しか来ないなら 10... とかと 99...とか の数値の大小で両脇を締めてしまう方が簡単じゃないですか?