• ベストアンサー

ゼロ拡張

「MaxLength」を例えば"5"に設定していたとして 桁数をまず把握させなければいけないと思いますが その部分でつまっています。^^; よろしくお願いします。

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

  • ベストアンサー
  • pinky23
  • ベストアンサー率40% (2/5)
回答No.3

もっと単純に、 format(10,"00000") こういうのじゃダメですか? 数値チェックが必要ですが。

siamzou
質問者

お礼

回答ありがとうございます。 今回は数値チェックなどは必要なくLostFocusの 時点で、ゼロ拡張したかったので、上記のformat 関数を参考にさせて頂きました。 おかげさまで解決いたしました。

その他の回答 (6)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.7

#5さん。張付けされたテキストは? っていうか、質問者は数値チェックを要望してるの? なんか、数値チェックについてになってきているが、気にしないで突っ走ろうw ちなみにAPIでも、数値入力制限というのがあります。サンプルは http://www.vbvbvb.com/jp/gtips/index0701.html の750番です さらに727番にテキストボックスの入力バイト数を制限するというのもあります。 これらを組み合わせても、やはり張付け時に値以外も入ってしまいます。 #6さんの方法 「数値以外の入力を認める。しかし、結果的にはじく」 この方法か、あるいは 「Changeイベントで、文字列のチェックを行い、入力すら認めない」 と言う方法が思いつきます。 あるいはコンポーネントで、MicrosoftMaskEditコントロールを使用するとか?

  • pinky23
  • ベストアンサー率40% (2/5)
回答No.6

これだけの話かな、とも思いましたが・・・。 ================================= Private Sub Text1_LostFocus() '入力したテキストの数値チェック If IsNumeric(Me.Text1.Text) = True Then '数値だったらMaxLength分の桁数にそろえる Me.Text1.Text = Format(Me.Text1.Text, String$(Me.Text1.MaxLength, "0")) Else 'エラー処理 (文字を消すとかエラーメッセージ出すとか) Me.Text1.Text = "" End If End Sub ================================= まぁ、あとは好みの問題でしょうか。

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.5

横から、すいません。 数値チェックです。 Private Sub Text1_KeyPress(KeyAscii As Integer) Select Case Chr(KeyAscii) Case 0 To 9 Case Else KeyAscii = 0 End Select End Sub

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

Formatでも良いけど、数値チェックが面倒だったから・・・ あえてそれをしなかったのです。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

Private Sub Form_Load()   Text1.Text = ""   Text1.MaxLength = 5 End Sub Private Sub Text1_GotFocus()   Text1.SelStart = 0   Text1.SelLength = Len(Text1.Text) End Sub Private Sub Text1_LostFocus()   Dim strWk    As String   Dim intLength  As Integer   strWk = Text1.Text   intLength = Text1.MaxLength   Text1.Text = Right$(String$(intLength, "0") & strWk, intLength) End Sub

siamzou
質問者

お礼

回答ありがとうございます。 今後、是非参考にさせて頂こうと思います。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

>「MaxLength」を例えば"5"に設定していたとして ふむふむ >桁数をまず把握させなければいけないと思いますが ふむふむ >その部分でつまっています ウッ 意味わかんないっす。 text1.maxlength = 5 とした後に、何がつまっているのでしょう?

siamzou
質問者

補足

すいません、補足します。 例えば「1」と入力したとします。 しかし領域はMaxlength=5なので、それを全て埋めたいの です。「1」ではなく、「00001」としたいのです。もう 少し例をあげると。。。 10→「00010」 100→「00100」 1000→「01000」 というふうに「ゼロ」で足りない桁数を埋めるというわけ です。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう