Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50451 / 76732 ←次へ | 前へ→

【31170】Re:大きなサイズのフォーム 訂正
発言  ichinose  - 05/11/14(月) 8:12 -

引用なし
パスワード
   ▼年寄り さん:
おはようございます。
>新規ブックに
>Userform1を作成し、Textbox1とCommandbutton1を作成してください。
>同じように
>Userform2を作成し、Textbox1とCommandbutton1を作成してください
>
>Userform1のモジュールに
>'============================
>Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
>  If Not IsNumeric(TextBox1.Text) Then
>    MsgBox "数字だけだよ"
>    Cancel = True
>    End If
>End Sub
>'=========================
>Private Sub UserForm_Initialize()
  With TextBox1
   .ControlSource = "sheet1!a1"
   .Text = "123"
   End With
>End Sub
>
>
>Useform2のモジュールに
>'===========================================
>Dim svcancel As Boolean
>'===========================================
>Private Sub TextBox1_AfterUpdate()
>  If Not IsNumeric(TextBox1.Text) Then
>    MsgBox "数字だけ"
>    svcancel = True
>  Else
>    svcancel = False
>    End If
>End Sub
>'==============================================================
>Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
>  Cancel = svcancel
>  svcancel = False
>End Sub
>'==============================================================
>Private Sub UserForm_Initialize()
>  svcancel = False
  With TextBox1
   .ControlSource = "sheet1!a1"
   .Text = "123"
   End With
>End Sub
>
>
>このふたつのユーザーフォームで
>TextBox1に数字以外をしてしみてください。
>表示の違いとコードをよく見比べてみてください。
>Cancel=Trueとしたときの後の動作に違いが出てきます。

失礼しました。コードを上記のように訂正しないと
違いがみられません。
(事前にフォームのプロパティを変更していたことを忘れてました)

テキストボックスの変更を反映する前に発生するのがBeforeupdate、
反映後に発生するのがAfterUpdateですよね。

ControlSourceに指定したセルを使用すれば、
BoforeUpdateの場合は、上記の理由で値を元に戻せるのです(Cancel=True時)。

投稿漏れに今の今まで気が付きませんでした。
大変、失礼しました。

1 hits

【13756】コントロール 年寄り 04/5/12(水) 19:58 質問
【13758】Re:コントロール ichinose 04/5/12(水) 22:01 回答
【13769】大きなサイズのフォーム 年寄り 04/5/13(木) 3:45 質問
【13771】Re:大きなサイズのフォーム ichinose 04/5/13(木) 8:15 発言
【13772】Re:大きなサイズのフォーム 年寄り 04/5/13(木) 8:57 お礼
【30550】Re:大きなサイズのフォーム 年寄り 05/10/30(日) 17:10 質問
【30570】Re:大きなサイズのフォーム 再送 ichinose 05/10/31(月) 7:37 発言
【30592】Re:大きなサイズのフォーム 再送 年寄り 05/10/31(月) 16:05 発言
【30605】Re:大きなサイズのフォーム 再送 年寄り 05/10/31(月) 19:47 発言
【30607】Re:大きなサイズのフォーム 再送 年寄り 05/10/31(月) 21:06 質問
【30608】Re:大きなサイズのフォーム 再送 ichinose 05/10/31(月) 21:42 発言
【30618】Re:大きなサイズのフォーム 再送 年寄り 05/11/1(火) 7:17 お礼
【30621】Re:大きなサイズのフォーム 再送 年寄り 05/11/1(火) 11:25 質問
【30622】Re:大きなサイズのフォーム 再送 ichinose 05/11/1(火) 12:16 発言
【30643】Re:大きなサイズのフォーム 再送 年寄り 05/11/1(火) 19:11 質問
【30645】Re:大きなサイズのフォーム 再送 ichinose 05/11/1(火) 20:16 発言
【30651】Re:大きなサイズのフォーム 再送 年寄り 05/11/1(火) 20:48 発言
【30658】Re:大きなサイズのフォーム 再送 ichinose 05/11/1(火) 22:41 発言
【31049】Re:大きなサイズのフォーム 再送 年寄り 05/11/10(木) 6:20 質問
【31050】Re:大きなサイズのフォーム 再送 ichinose 05/11/10(木) 7:53 発言
【31066】Re:大きなサイズのフォーム 再送 ichinose 05/11/11(金) 8:33 発言
【31111】Re:大きなサイズのフォーム 再送 年寄り 05/11/11(金) 17:16 発言
【31170】Re:大きなサイズのフォーム 訂正 ichinose 05/11/14(月) 8:12 発言
【31172】Re:大きなサイズのフォーム 訂正 年寄り 05/11/14(月) 8:47 発言

50451 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free