Excel VBA質問箱 IV

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

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


13360 / 76733 ←次へ | 前へ→

【68878】Re:SpinButtonのイベント
発言  grok  - 11/4/24(日) 9:15 -

引用なし
パスワード
   ▼悩める老人 さん:

おはようございます。

>下記のとおり 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

参考になれば。
2 hits

【68875】SpinButtonのイベント 悩める老人 11/4/24(日) 7:31 質問
【68876】Re:SpinButtonのイベント ichinose 11/4/24(日) 9:00 発言
【68881】Re:SpinButtonのイベント 悩める老人 11/4/24(日) 10:06 お礼
【68877】Re:SpinButtonのイベント SK63 11/4/24(日) 9:05 発言
【68878】Re:SpinButtonのイベント grok 11/4/24(日) 9:15 発言
【68879】Re:SpinButtonのイベント grok 11/4/24(日) 9:20 発言

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