|
▼悩める老人 さん:
おはようございます。
>下記のとおり SpinButtonの値を UserForm_Initializeで入力
>したところイベント SpinButton1_Changeが発生します。
>
>イベント発生回避の Apllication.EnableEvents=False を使ってみましたが
>うまくいきませんでした。
Apllication.EnableEventsは、Application配下のオブジェクトのイベントを制御
するものです。Applicationの配下にあるのはWorkBookやWorkSheetなどです。
UserFormはApplicationの配下にはありません。
ここで言うApplicationとはExcelの事です。
悩める老人さんが作成したUserFormは、AccessやWordでもインポートすればその
まま使用出来ます。(RangeやCellsなどExcel特有のコードを書いていなければそ
のまま、書いてあっても手を加えれば使用できます。)
ですのでUserFormは、Excel君の持ち物ではないと分かります。
UserFormはMSForms.UserFormと書くことから、MSFormsの持ち物だと
分かりますね?
UserFormでのイベントの抑制は、フラグを使う方法がよく紹介されています。
'モジュールレベルで宣言します。
'このフラグはUserForm_Initialize中はTrueに設定しておき、Subを抜ける前に
'Falseに設定します。このフラグを見てイニシャライズ中かどうか判断します。
Private IniFlag As Boolean
Private Sub UserForm_Initialize()
Dim aa As Integer
IniFlag = True
aa = Sheet1.[a1].CurrentRegion.Rows.Count
SpinButton1.Min = 1
SpinButton1.Max = aa
IniFlag = False
End Sub
Private Sub SpinButton1_Change()
IF IniFlag Then Exit Sub 'IniFlagがTrueならExit Subします。
・・・略・・・・
TextBox1.Value = SpinButton1.Value
・・・略・・・・
End Sub
参考になれば。
|
|