• ベストアンサー

VB6.0でテキストボックスの書式設定をしたいのですが、

VB6.0でテキストボックスの書式設定をしたいのですが、 以下のコードを入れてみたところ.Formatの部分で、 エラー(メソッドまたはメンバーが見つかりません)がでます。 どう書き直したらよろしいでしょうか? 教えてください。よろしくお願いします。 数値を小数点2桁まで表示したいです。 Private Sub Text_Change(Index As Integer) For i = 6 To 16 Me.Text(i).Format = "0.00" Next i End Sub

  • ddtqp
  • お礼率68% (139/203)

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

VB6でのFormat関数の使い方が違うのでは。たとえば、 Format(Form1.Text1.Text, "#0,00") 以下の、 http://msdn.microsoft.com/ja-jp/library/59bz1f0h%28VS.80%29.aspx の下部を参照。

ddtqp
質問者

お礼

回答ありがとうございます! できました。

その他の回答 (3)

  • uruz
  • ベストアンサー率49% (417/840)
回答No.3

テキストボックスにFormatプロパティはありませんのでNo1さんが書かれているようにプログラミングで実現する必要があります コンポーネント(OCX)を追加しても良いのなら 「Microsoft Masked Edit Control(SP3)」を使用すればFormatプロパティがありますので設定可能です。

  • joqr
  • ベストアンサー率18% (742/4026)
回答No.1

.Format そんな物あるの??? VB6.0のテクストボックスに書式があるなんて知りませんでした・・・ HELPみてください 書き直したいのなら、 1.テキストボックスをベースにOCXを作る 2.Format関数で、整形した値をセットする フォーカスが移動したか? Enterが押されたか? を判断して Format関数で、整形した値をセットする それでいいのでは? テキストボックスは、英字も記号も何でも入るから 入力文字の制限や識別は必須です

  • joqr
  • ベストアンサー率18% (742/4026)
回答No.2

.Format そんな物あるの??? VB6.0のテクストボックスに書式があるなんて知りませんでした・・・ HELPみてください 書き直したいのなら、 1.テキストボックスをベースにOCXを作る 2.Format関数で、整形した値をセットする フォーカスが移動したか? Enterが押されたか? を判断して Format関数で、整形した値をセットする それでいいのでは? テキストボックスは、英字も記号も何でも入るから 入力文字の制限や識別は必須です

関連するQ&A

  • ユーザーフォームのテキストボックスの書式設定について

    ユーザーフォームのテキストボックスの書式設定について TextBox1に金額、TextBox2に日付を入力し、Sheet1に転記するような フォームを作っています。 TextBox1には、 Private Sub TextBox1_Change() y = TextBox1.Text TextBox1.Text = Format$(CLng(y), "#,##0") End Sub としています。 TextBox2には、書式をH○○.○.○という設定にしたいのですが、 どのようにしたらよいでしょうか。

  • VB6 テキストボックスの数値をコンボボックスに反映させるには?

    TextBoxのChangeイベントを使って、 テキストボックスの数値をコンボボックスに反映させる (具体的には数値をコンボボックスのindex数にし、それぞれのindexに アニメ+str(i)としたいです。 しかし、後で書くソースは何故か、コンボボックスが アニメ1 アニメ0 アニメ1 アニメ2 アニメ3 … となってしまいます。 これを アニメ0 アニメ1 アニメ2 アニメ3 … としたいです。どうすればいいんでしょうか? Private Sub Text8_Change() Static p As Integer If Text8.Text = "" Then Exit Sub For i = 0 To p If p = 0 Then GoTo b If Form6.Combo1.NewIndex = -1 Then GoTo b Form6.Combo1.RemoveItem (i) Next i b: For i = 0 To Val(Text8.Text) Form6.Combo1.AddItem "アニメ" + str(i) Next i p = Val(Text8.Text) End Sub

  • 複数のテキストボックスのカンマ処理

    現在、ユーザーフォームに60個のテキストボックスを設置しています。 数値入力されるとカンマが付くようコードを書いているのですが、まとめて処理できるようなコードはないでしょうか? 現在… Private Sub TextBox1_Change() TextBox1.Text = Format(TextBox1.Text, "#,##0") End Sub Private Sub TextBox2_Change() TextBox2.Text = Format(TextBox2.Text, "#,##0") End Sub Private Sub TextBox3_Change() TextBox3.Text = Format(TextBox3.Text, "#,##0") End Sub これを60個 試しにfor~Nextで書いてみましたが、失敗しました。 Dim c As Integer For c = 1 To 60 Controls("TextBox" & c).Text = Format("TextBox" & c.Text, "#,##0") Next End Sub ご存知の方、お力を貸してください。 ウィンドウズ7のエクセル2013を使用しています。

  • テキストボックスのエンターキー無効

    VB6.0について質問いたします。 テキストボックスの入力の際に改行を強制的にできないように制御したいのですが次のプログラムでは上手くいきませんでした。 Private Sub Text_KeyDown(KeyCode As Integer, Shift As Integer) If vbcode = vbKeyReturn Then Exit Sub End If End Sub エンターキーを押したとき何も実行しないようにするにはどうしたらいいですか? テキストボックスはスクロールバーを設置してMultiLine プロパティをtrueに設定しています。

  • テキストボックスクリックでフォームたちあげ

    VB6.0でプログラム作成中です。 あるhinというオブジェクト名のテキストボックスをデータを入力しようとすると、Form2を立ち上がるようにしたいのです。以下のコードでいけると思ったのですが、フォームがあがらない状態です。 指摘頂ける方、宜しくお願い致します。 内容:フォーム2 キーボードの役割 テキストボックスに触れると、キーボードが立ち上がる。 Private Sub hin_Change(Index As Integer) Form2.Show End Sub

  • クリックされたオプションボタンによって、常時複数のテキストBOXの桁数を変えたい

    掲題の件ですが、クリックされたオプションボタンによって常時テキストの桁数を変えたいのですが、 これを複数の組み合わせで行いたいときはどのsub(form_load等)にどのように記述したらよいでしょうか? 例えば、オプションボタンで3桁、4桁、5桁の選択肢があるとすると、 Private Sub Option1_Click(Index As Integer) Me.text1.MaxLength = 3 End Sub Private Sub Option2_Click(Index As Integer) Me.text2.MaxLength = 4 End Sub Private Sub Option3_Click(Index As Integer) Me.text3.MaxLength = 5 End Sub となりますが、この組み合わせを複数作りたい場合、オプションボタンとテキストboxをコントロール配列にして、 Dim i As Integer For i = 0 to 3 If Option1(i).Value = True Then Me.text(i).MaxLength = 3 ElseIf Option2(i).Value = True Then Me.text(i).MaxLength = 4 ElseIf Option3(i).Value = True Then Me.text(i).MaxLength = 5 End If Next このような形になると思いますが、これですとForm_Loadに貼り付けても常時桁を変えることができません。 どのsubにどのようにコードを記述したらよいか教えていただけたら幸いです。 よろしくお願い致します。

  • テキストボックスの桁数をカウントして、フォーカス移動

    Win2000、VB6.0です。 テキストボックスとADOコントロールを使用して、レコードを編集・更新するフォームを作っています。 ただ、簡単に書く為に下の説明文ではDBについては書きません。 Form1に、Text1とText2があるとします。 Tab移動だけではなく、Text1に4桁目まで入力された時点で、Text2へフォーカスが移動するようにしたいと考えています。 Text1のChangeイベントで、 ------------------------------------ Private Sub Text1_Change()   If Len(Text1.Text) >= 4 Then     Text2.SetFocus   End If End Sub ------------------------------------ 以上のように記述しています。 ただ、Form1のロード時に、 ------------------------------------ Private Sub Form_Load()   Text1.Text = "1111" End Sub ------------------------------------ 以上のように記述すると、 「実行時エラー"5";」 「プロシージャの呼び出し、または引数が不正です。」 とエラーが発生してしまいます。 ロード時にテキストボックスに表示しつつ、入力された現在の桁数をカウントして、フォーカス移動する方法は無いのでしょうか? よろしくお願いします。

  • テキストボックスの数値を3桁ごとに区切りたい。

    テキストボックスの数値を3桁ごとに区切りたい。 エクセルのユーザーフォームにテキストボックスを1~7まで並べています。 テキストボックス1~6の合計を7に入れるようにしています。 テキストボックスに記入するVBAは以下のように投入しています。 合計は上手く表示されるのですが、3桁ごとに「,」の区切りを入れたいと思っています。 どのように記述したらよいのか、教えていただけないでしょうか。 -------------------------------------- Private Sub TextBox1_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox2_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox3_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox4_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox5_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub Private Sub TextBox6_AfterUpdate() Dim i Dim res For i = 1 To 6 res = res + Val(Me.Controls("TextBox" & i).Value) Next i TextBox7 = res End Sub -------------------------------------- #次の文字を書くテキストボックスの情報に加えてみましたが、 合計が狂ってうまくいきませんでした。 TextBox1.Text = Format(TextBox1.Value, "#,##0") TextBox7.Text = Format(TextBox7.Value, "#,##0")

  • ユーザーフォーム上にある「テキストボックス」に小数が入力できない

    以前にユーザーフォーム上のテキストボックスにセル値反映する方法を下記(サンプル1)のようにお教えいただいたのですが、下記のようにマクロを組むとテキストボックスに小数が入力できなくなってしまいます。 どのようにしたら、テキストボックスに小数が入力できるようになるのでしょうか? お教えください。 事例)「1.234」とテキストボックスに打ち込むと「1」    「0.856」とテキストボックスに打ち込むと「0」と    なってしまいます。 (サンプル1) 'A1のデータを反映するとした場合 'OptionButton1のコード Private Sub OptionButton1_Click() TextBox1 = Sheets("Sheet1").Range("a1") End Sub 'B1に反映するとして 'OptionButton2のコード Private Sub OptionButton2_Click() TextBox1 = "" End Sub 'TextBox1のコード Private Sub TextBox1_Change() If OptionButton2 = True Then Sheets("Sheet1").Range("B1") = TextBox1.Value End If End Sub

  • VB.NETとして書き換え

    コマンドボタンを押すたびに ココ という文字をテキストボックスに書く。 Private Sub Command1_Click() Dim i As Integer i = Int(Rnd * 4) For c = 0 To 4 Text1(c).Text = "" Next c Text1(i).Text = "ココ" End Sub VB6ではこんなふうになると思います。 .NETではどう書けばいいのでしょうか?

専門家に質問してみよう