Excel VBA質問箱 IV

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

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


21931 / 76734 ←次へ | 前へ→

【60189】イベントを止める方法について  Jakaさんへ
お礼  ma  - 09/2/3(火) 13:14 -

引用なし
パスワード
   昨日投稿する前に、頭の中で if○○ then で分けられればと考えていたのですが最後まで思いつきませんでした。

そこで、投稿させていただきました。
Jakaさんから、「flg」のヒントをえて

過去ログを検索して、 【49591】Re:チェックボックスの選択 Jakaさん と  【49872】Re:シート別のマクロの動かし方 勝子さん のログを探しました。

お二人を参考にして、何とか満足のいくベースのものは出来ました。

If flg = True Then
  flg = False ← ここが、思い浮かばなかった・・・・。
  Exit Sub
End If

始めに、下の物を作りました。

Public flg As Boolean

Private Sub ComboBox1_Change()
    If flg = True Then
      flg = False
      Exit Sub
    End If
      flg = True
        ComboBox1.Value = "1"
      flg = True
        ComboBox2.Value = "1"
      flg = True
        ComboBox3.Value = "1"
      flg = False
End Sub
Private Sub ComboBox2_Change()
    If flg = True Then
      flg = False
      Exit Sub
    End If
      flg = True
        ComboBox1.Value = "2"
      flg = True
        ComboBox2.Value = "2"
      flg = True
        ComboBox3.Value = "2"
      flg = False
End Sub
Private Sub ComboBox3_Change()
    If flg = True Then
      flg = False
      Exit Sub
    End If
    flg = True
        ComboBox1.Value = "3"
      flg = True
        ComboBox2.Value = "3"
      flg = True
        ComboBox3.Value = "3"
      flg = False
End Sub
Private Sub UserForm_Initialize()
flg = True
  ComboBox1.Value = "1"
flg = True
  ComboBox2.Value = "2"
flg = True
  ComboBox3.Value = "3"
flg = False
End Sub

そして、下の物に直しました。

Public flg As Boolean
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 3
  flg = True
    With UserForm3
      .Controls("ComboBox" & i).Value = i
    End With
Next
  flg = False
End Sub
Private Sub ComboBox1_Change()
Call tiyusi(1)
End Sub

Private Sub ComboBox2_Change()
Call tiyusi(2)
End Sub
Private Sub ComboBox3_Change()
Call tiyusi(3)
End Sub

Sub tiyusi(bangou)
Dim i As Integer
  If flg = True Then
    flg = False
    Exit Sub
  End If
  For i = 1 To 3
    flg = True
      With UserForm3
        .Controls("ComboBox" & i).Value = bangou
      End With
  Next
    flg = False
End Sub

どちらも、同じ結果になりました。

今後、Classを使っての改良が時間があればやってみたいと思います。

Jakaさん、ありがとうございました。
また、何かございましたらよろしくお願いいたします。
0 hits

【60179】UserFormnoのComboBox_Changeについて ma 09/2/2(月) 14:19 質問
【60180】Re:UserFormnoのComboBox_Changeについて Jaka 09/2/2(月) 14:56 発言
【60181】Re:UserFormnoのComboBox_Changeについて Yuki 09/2/2(月) 15:50 発言
【60183】Re:UserFormnoのComboBox_Changeについて ma 09/2/2(月) 16:40 お礼
【60189】イベントを止める方法について  Jakaさん... ma 09/2/3(火) 13:14 お礼
【60208】Re:イベントを止める方法について  Jaka... Jaka 09/2/4(水) 14:55 発言
【60211】Re:イベントを止める方法について  Jaka... ma 09/2/4(水) 16:44 お礼
【60226】Re:イベントを止める方法について  Jaka... Jaka 09/2/5(木) 11:29 発言
【60242】Re:イベントを止める方法について  Jaka... ma 09/2/5(木) 17:17 お礼
【60243】イベントを止める方法について(駄馬編) ma 09/2/5(木) 17:20 発言
【60247】Re:イベントを止める方法について Jakaさ... ma 09/2/5(木) 21:36 お礼
【60223】ちょっと修正。 Jaka 09/2/5(木) 10:10 発言
【60241】Re:ちょっと修正。 ma 09/2/5(木) 17:08 お礼

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