[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.