[[20140912173908]] 『テキストボック内の入力文字数』(CB) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『テキストボック内の入力文字数』(CB)

 ユーザーフォーム内にテキストボックスを配置しています。
 テキストボックスには、必ず7桁の数値を入力するのですが、7桁の数値が
 入力られていない時にはエラーの表示を行いたいのですがどうしたらいい
 でしょうか?

 また、複数あるテキストボックスに数値を入力後、所定のセルへ合計金額
 を求めたいのですが、コードをご教示ください。

 素人なのでいろいろ基本的なことばかりお聞きし申し訳ありません。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 If Not(TextBox1.Text Like "#######") Then ...

 とかでは? 
(kanabun) 2014/09/12(金) 17:48

    Private Sub CommandButton1_Click()
        ActiveSheet.Range("A1").Value = Application.Sum(TextBox1.Value, TextBox2.Value, TextBox3.Value)
    End Sub
    Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
        If Len(TextBox1.Value) <> 7 Then
            MsgBox "7桁で入力してください"
            Cancel = True
        End If
    End Sub
 なんとなーくイベントとかいろいろ分かってなさそうだけど
 一例
(稲葉) 2014/09/12(金) 17:56

 ありがとうございました。
 うまくできましたが、一点だけおしえてください。

 ActiveSheet.Range("A1").Value = Application.Sum(TextBox1.Value, TextBox2.Value, TextBox3.Value)
 の場合に、テキストボックス内に未入力があった場合でも計算をおこないたいのですがどこをどうした
 よいでしょうか?
(CB) 2014/09/12(金) 19:05

 TextBoxコントロールには .ControlSourceプロパティというのがあるから、
 複数TextBoxの演算をするときには、(TextBoxコントロールはあくまで 文字列だから)
 シートのセルで演算させて、その結果を利用するといいです。

 たとえば、Sheet1 の [X1][X2][X3] を それぞれ TextBox1,TextBox2, TextBox3 に連動させておき、

  Private Sub UserForm_Initialize()
    TextBox1.ControlSource = "Sheet1!X1"
    TextBox2.ControlSource = "Sheet1!X2"
    TextBox3.ControlSource = "Sheet1!X3"
  End Sub

 Sheet1の[X4]に 数式 =SUM(X1:X3) としておけば、
 セル[X4]の値が 求める値です。
(kanabun) 2014/09/12(金) 20:18

 Application.Sum(val(TextBox1.Value), val(TextBox2.Value), val(TextBox3.Value))
 でいけると思うけど。
 というより、すべて文字列なので計算する際は必ず数値に変換しておいた方が安全。
(seiya) 2014/09/12(金) 20:24

 ご回答ありがとうございます。
 数値に変換する場合はどのようにしたらいいですか?
(CB) 2014/09/15(月) 12:22

 Val関数で数値にしてあるけど?
(seiya) 2014/09/15(月) 22:45

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.