アプリ版:「スタンプのみでお礼する」機能のリリースについて

みなさま
こんにちは

ユーザーフォームのイベント処理についておしえください。

ユーザフォームには
Multipageを設定しておりPAGE1にLISTOBOXを配置しております。
ユーザフォーム内にCheckBox1を配置しそのボタンにレ点をいれると
複数行選択(fmMultiSelectMulti)できるように(fmMultiSelectMulti)を設定

チェックボックスをONにすると複数行選択画面になるのですが、
LISTBOX1.AFTERUPDTEイベントが走ってしまします。

回避方法として、同じpage1の領域のなかに適当な「コマンドボタン」
を配置しそのボタンにフォーカスをあてるという処理をいれて「CheckBox1」を押すと
LISTBOX1.AFTERUPDTEが発生しません。

適当なボタン=コマンドボタン15

フォーカスの移動が関係して、AfterUpdateが走っているのかなぁとおもっているんですが 他の方法で回避する方法ってございませんでしょうか?

合計3つのボタンが配置されてます。

ユーザフォーム内には 「CheckBox1」 1つ配置
Multipate(page1)の領域には
 「listbox1」、「コマンドボタン15」が1つづつ配置されてます


-------------------------------

Private Sub CheckBox1_Click()

With ListBox1

.MultiSelect = fmMultiSelectMulti
.listStyle = fmListStyleOption

END SUB

---------Afterupdteが発生しないパターン------------

Private Sub CheckBox1_Click()

CommandButton15.SetFocus (これをつけるとlistbox After updateが発生しない)

With ListBox1

.MultiSelect = fmMultiSelectMulti
.listStyle = fmListStyleOption

END SUB
----------コマンドボタン15の処理の中身(参考)-----------------------

Private Sub CommandButton15_Click()

End Sub

質問者からの補足コメント

  • こんばんは。
    listboxのデータ指定方法は
    ROW SOURCE a1:c4としております。

      補足日時:2018/12/16 21:07
  • ありがとうございました。
    イベント回避はできないので、(UPDATE)がはしったら抜ける処理を入れてます。

    まぁ。ぼっくんもわかってないのでこちらでしめさせていただきます。(閉店ガラガラ)
    それではまた バイバイキーン

      補足日時:2018/12/20 17:00

A 回答 (2件)

こんにちは



>回避する方法ってございませんでしょうか?
イベントを発生させずに処理を行いたいという意味と解釈しました。

未検証ですが・・・
おきまりの
 Application.EnableEvents = False
ではダメということでしょうか?
    • good
    • 0
この回答へのお礼

どうもです。
だめでした。
userform1上にLISTBOXを配置するとAfterUpdateは発生しないのですが、
マルチページ上(page1)に設定すると、AfterUpdateが発生します。
マルチページ上に配置したLISTBOXではAfterUpdateが発生する理由が知りたいです。

あと、Tabstrip上にLISTBOXを配置した場合も発生しません。

お礼日時:2018/12/18 01:24

AfterUpdateイベント側で最初に状態をみて、本来の処理を行うか否かを判断するしかないのではないでしょうか。



Private Sub ListBox1_AfterUpdate()
  If ListBox1.MultiSelect = fmMultiSelectMulti And _
    ListBox1.ListStyle = fmListStyleOption Then
      Exit Sub
  End If

みたいなかんじで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A