- ベストアンサー
ExcelのVBAで桁数制限を設けたい
続けてVBAの質問をさせていただきます。 例えばA1セルの桁数を半角で12桁と条件を設定しています。 ブランクであれば問題無しでよいのですが、値が入っている状態で 12桁未満または12桁以上を入力した場合にアラートを表示させるには どうすればよいでしょうか? If Worksheets("Sheet1").cells(1, 1).length <> 12 then msgbox "桁数が誤っています", vbOkOnly Exit Sub End If こんな感じで作ったもののうまくいきません。 一行目がおかしいようですがどう直せばいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
If Len(Cells(1,1)) <> 12 then MsgBox("~~~") End If Len関数で文字数を数えます。 お試しくださいませ。 空白に関しては考慮していませんので悪しからず。
その他の回答 (1)
- FEX2053
- ベストアンサー率37% (7991/21371)
回答No.1
Cells(1,1)はオブジェクトなので、数字と評価されると桁数の 概念がありません。一旦文字列変数で受けると桁数が チェックできるはずですが。 それより絶対に数字しか来ないなら 10... とかと 99...とか の数値の大小で両脇を締めてしまう方が簡単じゃないですか?
お礼
AND条件で値がブランクでないを追加したところうまくいきました。 教えていただきありがとうございました!
補足
たしかに上記のとおりで桁数チェックは可能ですが、 セルがブランクの時(=0)の時はチェックの対象外としたいです。 これはVBAで回避できないでしょうか?