[[20140408004434]] 『addnumについて』(takumi) ページの最後に飛ぶ

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

 

『addnumについて』(takumi)

今晩は!
以前[[20121124225236]]で質問をさせていただきました。

ぶらっとさまにご教授いただいたように

 (0 は CommandButton10 にしている)
 Private Sub CommandButton1_Click()
    AddNum 1
 End Sub
 Private Sub CommandButton2_Click()
    AddNum 2
 End Sub
 Private Sub CommandButton3_Click()
    AddNum 3
 End Sub
   '
   '
   '
 Private Sub CommandButton9_Click()
    AddNum 9
 End Sub
 Private Sub CommandButton10_Click()
    AddNum 0
 End Sub
 Private Sub AddNum(n As Long)
    With TextBox1
        If Len(.Text) > 15 Then
            MsgBox "16桁までしか入力できません"
            Exit Sub
        Else
            .Text = .Text & n
        End If
    End With
 End Sub
 これで全く問題なく稼動しているのですが
上記の条件が無い場合(純粋に文字を入力するだけの場合)
どのように記述すればよろしいのでしょうか?

  Private Sub CommandButton2_Click()
    AddNum 2
 End Sub
 Private Sub CommandButton3_Click()
    AddNum 3
 End Sub
等の数字だけを生かしたい。

 Private Sub AddNum(n As Long)
    With TextBox1
        If Len(.Text) > 15 Then
            MsgBox "16桁までしか入力できません"
            Exit Sub
        Else
            .Text = .Text & n
        End If
    End With
 End Sub
が重要で
これが無ければ出来ないのは理解できたのですが
これから自分でも頑張ります。

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


 TextBox1 の Change イベントにこんな感じで追加してはどうでしょう。

 Private Sub TextBox1_Change()
    Const MaxLen = 15 
     If Len(TextBox1.Text) > MaxLen Then
        Application.EnableEvents = False
        TextBox1.Text = Left(TextBox1.Text, MaxLen)
        Application.EnableEvents = True
        MsgBox  MaxLen  & "までしか入力できません"
     End If
 End Sub

 AddNum の文字数チェックはこれとかぶるので、省略も可能です。

 蛇足ですけれど、上記だと15桁までしか入らないので MsgBox の記述がまずいのでは?
(Mook) 2014/04/08(火) 08:06

 >上記の条件が無い場合(純粋に文字を入力するだけの場合)
どのように記述すればよろしいのでしょうか?

 何をしたいのかよくわかりませんねえ、ここに記述するのは、仕様書を記述する良い練習になるので
 具体例も何例か記述しながら説明されると良いと思いますよ!!

 因みに・・・、

 Mookさんの

        >Application.EnableEvents = False
        >TextBox1.Text = Left(TextBox1.Text, MaxLen)
        >Application.EnableEvents = True

 上記コードの前後のApplication.EnableEventsの設定がイベントの2重起動防止なら、
 ActivexControlのイベントは、Application.EnableEventsでは、制御できませんよ

(ichinose) 2014/04/09(水) 00:00


 あらら、ほんとうですね。
 たまたま今回のケースでは2回目で終わるから問題ないですけれど、
 自分で制御しなければならないんですね。

 今更の事実。意外と面倒ですね。
(Mook) 2014/04/09(水) 00:07

コメント返信:

[ 一覧(最新更新順) ]


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