• ベストアンサー

Excel2010VBAの数値判定、桁数

Excel2010VBAの数値判定で、例えば「TextBox1」で、西暦の年数が入ります。 「TextBox1」の桁数が4桁をチェックしたい場合(4桁しか入力してはいけない場合)どうすればよいでしょうか?ただし、1桁目の数値は0ではいけません。 例: 0123・・・× 2014・・・○ 回答よろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

UserFormのTextBoxでしょうか。 テキストボックスのExitイベントに記述するなら、下記でいかがでしょうか。 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Not IsNumeric(Me.TextBox1.Value) Then MsgBox "4桁の数値を入力して下さい" Cancel = True ElseIf CLng(Me.TextBox1.Value) > 9999 Or CLng(Me.TextBox1.Value) < 1000 Then MsgBox "4桁の数値を入力して下さい" Cancel = True End If End Sub 1000年から9999年まで入力できてしまいますので、お望みの範囲にアレンジして下さい。

miya_HN
質問者

お礼

回答ありがとうございます。 ユーザーフォームのテキストボックスです。説明不足ですいません。 IsNumericで数値判定、CLngの部分が1000~9999の数値入力が可能ということですね。 大変助かります。 ありがとうございました。

関連するQ&A

  • VBAで入力数値について

    Excel VBAでTextBoxに入力された数値が整数か小数か判定し、 小数の場合は、下記のようにしたいのですが、どのようにしたらよいのでしょうか。 TextBoxに入力された数値が、 (1)整数の場合・・・A=TextBox1.Value (2)小数点第一位の場合(1.5など)・・・A=TextBox1.Value*10 (3)小数点第二位の場合(1.55など)・・・A=TextBox1.Value*100 どなたかご教授願います。

  • VBAで数値入力について

    Excel VBAで、UserFormにTextBoxを配置しています。 TextBoxに入力された数値は、半角数値で正数で小数点以下の桁数は1までと制限したいです。 現在は下記のプログラムにしているのですが、「1.2.3」と入力されるとエラーが表示されずに通ってしまいます。。。 どのようにしたらよいのでしょうか。 For i = To Len(TextBox1.Text) If Not Mid(TextBox1.Text, i, 1) Like "[0-9 And .]" Then Message"半角数値ではありません" Exit Sub End If Next i If Val(Text1.Text) = 0 Or TextBox1.Text = "" Then Message"数値を入力してください" Exit Sub End If

  • 有意桁数、有効桁数について

    有意桁数というものがあって、それが公に認知されている(出所がJISとかその他の公知規格)ものなのか、また有効桁数との関係等を悩んでいます。どなたかそちら方面に詳しい方がいらっしゃいましたら是非教えてください。お願いいたします。 有意桁数 ・測定値に小数点が含まれている場合、または10のべき乗で示されている場合はべき乗以外のすべての桁を有意桁数とする。 例:0.001ー有意桁数3、1.01ー有意桁数3、3×10⁴-有意桁数1、1.25×10⁵ ー有意桁数3 ・べき乗で示されていない自然数の場合で数値の後ろにゼロがある場合は、ゼロを省いた上位の数字の桁数を有意桁数とするが、1桁となる場合は、”2桁”とみなす(最低でも2桁とする)。 例;5000ー有意桁数2、3150ー有意桁数3、10ー有意桁数2、201ー有意桁数3 ・測定値のToleranceは、有意桁の最下位の1つ下の位で四捨五入する値とする。

  • エクセル 数値を決まった文字で表示したい

    よろしくおねがいします。 excel2003 または excel2007 です。 数値を決まった文字列であらわしたいのです。できれば VBA を使わずに。 たとえば 1・・・あ 2・・・い 3・・・う などとして  123(数値)を あいう(文字列)で表示したいのです。 数値の桁数は最高で7桁です。 よろしくおねがいします。  

  • エクセルで桁数の分からない数値を右から1数値ずつ抜き出したい

    エクセルで教えて下さい!! 桁数の分からない数値があります。 12345を他のセルに1数値づつ抜き出したい。 桁数が分かっていれば簡単なのですが… 桁数が分からない為その12345が入っていたセルには123456と6桁入る場合もあります。 RIGHTなら右から2文字とか3文字とか抜き出しますが…1つのセルに1つの数字を抜き出したいのです。 RIGHTなら1番右1文字は抜き出せても12345が入っている場合、2番目の4の数値を1文字だけ抜き出す事って不可能ですよね。(45を1つのセルに抜き出す事になります) 説明下手で申し訳ないですが(~_~;)分かれば教えて下さい宜しくお願いします!!ヽ(^o^)丿

  • エクセル関数で桁数指定し数値を比較したいが

    エクセル関数で桁数指定などあるのでしょうか? 例えば 桁数を指定し一致した数値を取り出したいが・・どうすればよいでしょうか? 桁数は1桁~6桁です。 「例」123456の数字があります。 6桁全て一致したら○ 下5桁一致したら○ 下4桁一致したら○ 下3桁一致したら○ ・・・・と言う具合にエクセルで組みたいのです。よろしくお願いします。

  • Perlの数値計算で有効桁数を上げたい

    通常、Perlで数値計算をする場合、有効桁数は15~16桁になってしまいます。 これを、32桁、64桁と精度を上げて計算する方法はないでしょうか。 現在の環境は、Perl 5.8です。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • Excel2000での数値の抽出について教えて下さい。

    どうかご教示下さい。(過去質問を眺めましたが、不慣れな為よくわかりませんでした) Excel2000で桁数の不揃いな数値が入力されています。(1桁-10桁) それを別のセルに分解して抽出したいです。 たとえば、 A1セルに"12345"と入力されている数値に対して、 A2には万の位の"1"を、A3には千の位の"2"を、A4には百の位の"3"をと言った具合です。 桁数が不揃いの為、MID関数がうまく出来ませんでした。 小生まだまだ初心者です。以上よろしくお願いします。

  • 桁数を求めるプログラム。

    入力した数字の桁数を表示させるというプログラムを考えています。 例) 135 この数字の桁数は3桁です。 などと表示させたいと思っています。 それで、私は入力した数値を10で割っていって入力した数値aがa<=0になったらループを終了して 何回ループしたかのカウンタで桁数を表示させようかと考えました。 たとえば135→13.5→1.35→0.135で整数部分が0となるのでループを打ち切って 3回繰り返したので3桁と表示させたいと思いました。 それでプログラムを考えてみたのですが、どうにもうまくいきいません。 どのように修正したら桁数が表示できるようになるでしょうか? #include <stdio.h> main() { double a=0; int n=1; scanf("%d",&a); while(1) { a=a/10.0; if(a<=0){ break; } n++; } printf("その数は%d桁です。\n",n); }

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

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

専門家に質問してみよう